Google maps 如何检查直线是否在多边形中?
我在谷歌地图上有一个多边形。我希望直线保持在多边形的边界内。我当前的代码可以工作,但前提是多边形的形状很简单,没有锐边(凹边)。当有锐边时,线将越过边界: 代码如下:Google maps 如何检查直线是否在多边形中?,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我在谷歌地图上有一个多边形。我希望直线保持在多边形的边界内。我当前的代码可以工作,但前提是多边形的形状很简单,没有锐边(凹边)。当有锐边时,线将越过边界: 代码如下: var polyOptions = { strokeColor: 'red', strokeOpacity: 1.0, strokeWeight: 3, editable: true, zIndex:2 }; poly = new google.maps.Polyline(poly
var polyOptions = {
strokeColor: 'red',
strokeOpacity: 1.0,
strokeWeight: 3,
editable: true,
zIndex:2
};
poly = new google.maps.Polyline(polyOptions);
poly.setMap(map);
bermudaTriangle.setMap(map);
google.maps.event.addListener(map, 'click', addLatLng);
google.maps.event.addListener(map, 'rightclick', drawPolygon);
}
var bermudaTriangle = new google.maps.Polygon({
strokeColor: 'orange',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: 'yellow',
fillOpacity: 0.35,
zIndex:1,
clickable:false,
editable:true
});
function addLatLng(event) {
var path = poly.getPath();
if(google.maps.geometry.poly.containsLocation(event.latLng, bermudaTriangle)){
path.push(event.latLng);
console.log(path);
}
}
function drawPolygon(event) {
var path = bermudaTriangle.getPath();
path.push(event.latLng);
}
试着读一下:选中它,答案是关于一个点,而不是一条线如何:如果它是在javascript或一些理论中,这可能会有所帮助如何制作它…如何测试多边形中每条线与所讨论的线的交点?这也可能有助于: