これを行ういくつかのライブラリを見てきましたが、それらのほとんどはキャンバス ライブラリであり、必要以上に近似に依存している可能性があり、それらに直接依存する必要のないプロジェクトに適応するのは難しい場合があります。交差点用。
私が考えることができる他の唯一のまともなオプションは、 javascript でレイキャスティングを実装することです。このアルゴリズムはユークリッド幾何学用であり、緯度/経度座標はそうではありません (曲面上の点を示すため) ため、技術的に完全ではありませんが、都市の近隣のような小さな領域では、これが問題になるとは思えません。
基本的にこのアルゴリズムを実行するGoogle マップ拡張機能を次に示します。少し調整する必要がありますが、原則は非常に似ています。大きなことは、座標を 2 つの座標だけのパスに前処理する必要があることですが、それは実行可能なはずです.*
これは決して安価ではありません。分類する必要があるすべてのポイントについて、近隣ポリゴンのすべての線分をテストする必要があります。ユーザーがセッション間で同じ座標を何度も再利用すると予想される場合、データの一部として近隣を保存したくなるでしょう。そうではなく、非常に多くの近隣に対してテストする場合は、実装できる簡単な時間節約手段がいくつかあります。たとえば、すべての近隣の極端な座標を前処理し (最北端、最東端、最南端、最西端のポイントを取得)、これらを使用して町に内接する長方形を定義できます。次に、最初に候補近傍のポイントが長方形の内側にあるかどうかを確認してから、完全なレイ キャスティング アルゴリズムを実行します。
*このルートに進むことに決め、このコードを適応させるのに問題がある場合は、喜んでお手伝いします