web-dev-qa-db-ja.com

JavasScriptを使用して、GeoJSONポイントがGeoJSONポリゴン内にあるかどうかを判断することは可能ですか?

JavaScriptのみ(d3、topojson、またはその他の方法)を使用して、特定の緯度、経度のGeoJSONポイントが特定のGeoJSONポリゴン内にあるかどうかを判断することはできますか?

たとえば、チュートリアル here に基づいて、イギリスの国を示すマップを描画できます。

次に、座標を持っているが、それらがどの国にあるのかを示していないいくつかのポイントがあります。

各国の合計ポイント数を表示したいと思います。

ブラウザで各ポイントが含まれている国を特定できますか、それともPostGISなどを使用してサーバーでポイントデータを前処理する必要がありますか?

21
user5325596

のように思える d3カバーしました: https://github.com/d3/d3-geo#geoContains

d3.geoContains(オブジェクト、ポイント)

指定されたGeoJSONオブジェクトに指定されたポイントが含まれている場合にのみtrueを返し、オブジェクトにポイントが含まれていない場合はfalseを返します。ポイントは、度数の2要素配列[経度、緯度]として指定する必要があります。ポイントおよびマルチポイントジオメトリの場合、正確なテストが使用されます。球の場合、常にtrueが返されます。他の形状の場合、イプシロンしきい値が適用されます。

13
thedude

@ thedudeの答えを展開すると、特定の項目に対してこのチェックを複数回実行する必要がある場合は geojson-lookup を使用することもできます。 GeoJSON。

1
simonepri