We can detect overlapping of two polygons.But i just code in js and then we can prevent overlapping of polygon by alert of errors.
- Includes cdns of libraries.
- Existing polygon are in polygons shapes in js variable or js array.(i.e)
- Make new polygon.
- Search second polygon to first polygon.
Both polygon same so you can change them.
These cdn of libraries you must use them.
https://maps.googleapis.com/maps/api/js?v=3
https://code.jquery.com/jquery-1.11.1.min.js
https://bl.ocks.org/christophermanning/raw/4450188/javascript.util.min.js
https://bl.ocks.org/christophermanning/raw/4450188/jsts.min.js
https://cdnjs.cloudflare.com/ajax/libs/wicket/1.1.0/wicket.js
https://cdnjs.cloudflare.com/ajax/libs/wicket/1.1.0/wicket-gmap3.js
var values=[ new google.maps.LatLng(59.73858,10.24296), new
google.maps.LatLng(59.74879,10.26459), new
google.maps.LatLng(59.73858,10.28965), new
google.maps.LatLng(59.7192,10.28965), new
google.maps.LatLng(59.7192,10.24296), new
google.maps.LatLng(59.73858,10.24296)];
var new_shape=[ new google.maps.LatLng(59.73858,10.24296), new
google.maps.LatLng(59.74879,10.26459), new
google.maps.LatLng(59.73858,10.28965), new
google.maps.LatLng(59.7192,10.28965), new
google.maps.LatLng(59.7192,10.24296), new
google.maps.LatLng(59.73858,10.24296)];
var existing_polygon = new google.maps.Polygon({
paths: values,
strokeColor: #000000,
strokeOpacity: 0.8,
strokeWeight: 1.5,
fillColor: #ff0000,
fillOpacity: 0.35,
});
var polygone_new_shape= new google.maps.Polygon({
paths: [new_shape],
strokeColor: '#000000',
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: '#00FF00',
fillOpacity: 0.35
});
var wkt = UseWicketToGoFromGooglePolysToWKT(existing_polygon, polygone_new_shape);
var result= UseJstsToTestForIntersection(wkt,wkt);
if(result==true){
alert("Polygon are overlapping existing polygon");
}
function UseWicketToGoFromGooglePolysToWKT(poly1, poly2) {
var wicket = new Wkt.Wkt();
wicket.fromObject(poly1);
var wkt1 = wicket.write();
wicket.fromObject(poly2);
var wkt2 = wicket.write();
return [wkt1, wkt2];
}
function UseJstsToTestForIntersection(wkt1, wkt2) {
var wktReader = new jsts.io.WKTReader();
var geom1 = wktReader.read(wkt1);
var geom2 = wktReader.read(wkt2);
var result;
if (geom2.intersects(geom1)) {
result=true;
}else{
result=false;
}
return result;
}