Skip to content
Snippets Groups Projects
intersect.js 1.72 KiB
function intersection() {

    // Sjekk av faktisk og gyldig input:

    var regex = /^[a-zA-Z_0-9]+$/;

    if (document.getElementById("intersectionSelect_1").value == "- - -") {
        return alert("You need to choose the first layer!");
    } else if (document.getElementById("intersectionSelect_2").value == "- - -") {
        return alert("You need to choose the secondt layer!");
    } else if (!document.getElementById("intersectionName").value) {
        return alert("You need to choose a name for the new layer!");
    } else if (!document.getElementById("intersectionName").value.match(regex)) {
        return alert("The new name must consist of normal letters!");
    }

    var input1 = document.getElementById("intersectionSelect_1").value;
    var layer1 = overlayMaps[input1].toGeoJSON();
    var input2 = document.getElementById("intersectionSelect_2").value;
    var layer2 = overlayMaps[input2].toGeoJSON();
    var name = document.getElementById("intersectionName").value;
    
    // Må konverteres fra feature collection til multipolygon:
    var multiPolygon1 = featureCollectionToMultiPolygon(layer1);
    var multiPolygon2 = featureCollectionToMultiPolygon(layer2);
    
    try {
        var intersection = turf.intersect(multiPolygon1, multiPolygon2);
        
        if (isMultiPolygon(intersection)) {
            intersection = multiPolygonToFeatureCollection(intersection);
        }

        var newLayer = new L.GeoJSON(intersection, {style: getStyle()});
        
        overlayMaps[name] = newLayer;

        updateSidebar();
        handleLayer(name);
        document.getElementById("intersectionName").value = "";
        fillDoubleSelect("intersectionSelect");
    } catch(failure) {
        alert(failure);
    }
}