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或一些理论中,这可能会有所帮助如何制作它…如何测试多边形中每条线与所讨论的线的交点?这也可能有助于: