私はこのパッケージを使用することはお勧めしません。最新ではないし、最後のコミットはずっと前です。代わりに、以下のアルゴリズムを使用してポイントがポリゴン内にあるかどうかを計算します。 My機能は以下の通りです:ポイントはplygonである
point = {latitude: 0, longitude: 0} // example of point
polygonArray = [
{
'latitude': 35.787184,
'longitude': 51.348038,
},
{
'latitude': 35.792754,
'longitude': 51.383057,
}
] // example of polygonArray
_isInPolygon = (point, polygonArray) => {
let x = point.latitude
let y = point.longitude
let inside = false
for (let i = 0, j = polygonArray.length - 1; i < polygonArray.length; j = i++) {
let xLat = polygonArray[i].latitude
let yLat = polygonArray[i].longitude
let xLon = polygonArray[j].latitude
let yLon = polygonArray[j].longitude
let intersect = ((yLat > y) !== (yLon > y)) && (x < (xLon - xLat) * (y - yLat)/(yLon - yLat) + xLat)
if (intersect) inside = !inside
}
return inside
}
場合、この関数はtrue
を返し、それ以外の場合はfasle
を返します。また、アルゴリズムhereのソースを見ることができます。
あなたにとって便利でしたか? –
これは便利ですが、私の質問は、ジオフェンスを検出する効率的な方法を見つけることです。このコードが設定されている方法は、私が入っているフェンスを検出するために、多くの異なるポリゴンをループする必要があります。 – skipper