gpt4 book ai didi

google-maps - 谷歌地图 v3 : check if point exists in polygon

转载 作者:行者123 更新时间:2023-12-03 09:14:54 24 4
gpt4 key购买 nike

我正在寻找一种方法来检查点是否存在于 Google Maps v3 (JavaScript) 中的多边形内。我到处搜索,到目前为止我发现的唯一解决方案是获取多边形的边界,但显示的代码似乎只是创建了一个矩形并不断扩大其表面积以包括所有相关点。

顺便说一句,我不能只使用一个大正方形,即得到一个多边形边界,是因为我在 map 上有边界多边形,它们不能扩展到彼此的领土。

编辑
根据下面的回复,我尝试使用我现有的多边形之一来实现示例代码,但它只是说它没有定义,我不知道为什么。

这里是我的报关表:

myCoordinates = [
new google.maps.LatLng(0.457301,-0.597382),
new google.maps.LatLng(0.475153,-0.569916),
new google.maps.LatLng(0.494379,-0.563049),
new google.maps.LatLng(0.506738,-0.553436),
new google.maps.LatLng(0.520470,-0.541077),
new google.maps.LatLng(0.531456,-0.536957),
new google.maps.LatLng(0.556174,-0.552063),
new google.maps.LatLng(0.536949,-0.596008),
new google.maps.LatLng(0.503991,-0.612488),
new google.maps.LatLng(0.473780,-0.612488) ];

polyOptions = {
path: myCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.6 };

var rightShoulderFront = new google.maps.Polygon(polyOptions);
rightShoulderFront.setMap(map);

这是我要检查的地方:

var coordinate = selectedmarker.getPosition();
var isWithinPolygon = rightShoulderFront.containsLatLng(coordinate);
console.log(isWithinPolygon);

但它不断出现错误: Uncaught ReferenceError: rightShoulderFront is not defined

最佳答案

解决这个问题的一种算法是光线转换。看解释here .

您可以找到为 Google Maps JS API V3 here 实现此功能的代码.

HTH。

关于google-maps - 谷歌地图 v3 : check if point exists in polygon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com