-1
Googleマップのポリゴンエリアに関するヘルプが必要です。私は、多くのマーカーをGoogleマップにプロットしています。マップ上に多角形領域をプロットしてください。ポリゴン領域がクリックされるたびに、ポリゴンで覆われたマーカ点の合計を探したいと思います。親切にこの方向への良いリンクを導くか提供してください。 ありがとう。クリック時にGoogleマップのポリゴン、ポリゴン内のマーカーの概要を表示
Googleマップのポリゴンエリアに関するヘルプが必要です。私は、多くのマーカーをGoogleマップにプロットしています。マップ上に多角形領域をプロットしてください。ポリゴン領域がクリックされるたびに、ポリゴンで覆われたマーカ点の合計を探したいと思います。親切にこの方向への良いリンクを導くか提供してください。 ありがとう。クリック時にGoogleマップのポリゴン、ポリゴン内のマーカーの概要を表示
ray casting algorithmを試すことができます。実装は、このようなものになるだろう:あなたはwiki articleで読むことができるよう
var markers = []; // list of your markers
var polygonPath = polygon.getPath();
var location;
for (var i = 0; i < markers.length; i++) {
location = markers[i].getPosition();
console.log(isPositionInside(location.lat, location.lng, polygonPath));
}
function isPositionInside(mLat, mLng, polygonPoints) {
var isInside = false;
for (var a = 0, b = polygonPoints.length - 1; a < polygonPoints.length; b = a++) {
var aLng = polygonPoints[a].lng,
aLat = polygonPoints[a].lat,
bLng = polygonPoints[b].lng,
bLat = polygonPoints[b].lat;
if ((aLng > mLng) != (bLng > mLng) && (mLat < (bLat - aLat) * (mLng - aLng)/(bLng - aLng) + aLat)) {
isInside = !isInside;
}
}
return isInside;
};
これは、最も最適なソリューションではありませんが、ほとんどの場合、それは仕事を得るでしょう。
[ジオメトリライブラリのポリネームスペース](https://developers.google.com/maps/documentation/javascript/reference#poly)には 'containsLocation(point:LatLng、polygon:Polygon)'メソッドがあります(戻り値: boolean指定された点が指定されたポリゴンの内側にあるかどうかを計算します。 – geocodezip