Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:用纬度和经度减去多边形_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript:用纬度和经度减去多边形

Javascript:用纬度和经度减去多边形,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我在使用Javascript和GoogleMapsAPI进行此操作时遇到问题 我有一个带边界(纬度和经度)的矩形。 此外,我还有一个多边形及其边界(每个点的纬度和经度) 我需要得到一个新的多边形,第一个矩形没有多边形,所以我需要将多边形减去矩形,得到新多边形的边界 我该怎么做 提前谢谢 给你: // Create a rectangle var rectangle = new google.maps.Rectangle({ strokeOpacity: 0, strokeWeig

我在使用Javascript和GoogleMapsAPI进行此操作时遇到问题

我有一个带边界(纬度和经度)的矩形。 此外,我还有一个多边形及其边界(每个点的纬度和经度)

我需要得到一个新的多边形,第一个矩形没有多边形,所以我需要将多边形减去矩形,得到新多边形的边界

我该怎么做

提前谢谢

给你:

// Create a rectangle
var rectangle = new google.maps.Rectangle({
    strokeOpacity: 0,
    strokeWeight: 0,
    fillColor: '#FF0000',
    fillOpacity: .6,
    bounds: new google.maps.LatLngBounds(
        new google.maps.LatLng(33, 3),
        new google.maps.LatLng(44, 25)
    ),
    zIndex: 0
});

// Get the rectangle bounds
var rb = rectangle.getBounds();

// Create a triangle
var triangle = new google.maps.Polygon({
    strokeOpacity: 0,
    strokeWeight: 0,
    fillColor: '#00FF00',
    fillOpacity: .6,
    paths: [
        new google.maps.LatLng(39, 4),
        new google.maps.LatLng(34, 24),
        new google.maps.LatLng(43, 24),
        new google.maps.LatLng(39, 4)
    ],
    zIndex: 1
});

// Get rectangle points coordinates (path)
var rectangleCoords = [
    new google.maps.LatLng(rb.getNorthEast().lat(), rb.getSouthWest().lng()),
    new google.maps.LatLng(rb.getNorthEast().lat(), rb.getNorthEast().lng()),
    new google.maps.LatLng(rb.getSouthWest().lat(), rb.getNorthEast().lng()),
    new google.maps.LatLng(rb.getSouthWest().lat(), rb.getSouthWest().lng()),
    new google.maps.LatLng(rb.getNorthEast().lat(), rb.getSouthWest().lng())
];

// Create polygon from rectangle coords and triangle path
var polygon = new google.maps.Polygon({
    paths: [rectangleCoords, triangle.getPath()],
    strokeOpacity: 0,
    strokeWeight: 0,
    fillColor: '#FF0000',
    fillOpacity: .6,
    map: map
});
注意:一个更简单的解决方案是创建类似三角形的矩形(多边形而不是矩形),这样您就可以直接对其调用
getPath()

希望这有帮助。下面是一个工作演示


你想切饼干吗?所以我的意思是你想在范围内减去的多边形(矩形)?我想减去的三角形在主矩形内,所以你想创建一个孔效果?是的,我想删除多边形形状的这部分,以获得第一个没有多边形的矩形。请分享你到目前为止的代码。谢谢,效果很好。我曾测试过Turb.js库对多边形进行减影,但这对我来说效果很好。另外,我将使用Adammck Mask来绘制面具。谢谢!!!不客气。只是粘贴到您提到的库的链接以供进一步参考:-。