ほとんどの人がこの質問を見て、Google Geocode を教えてくれることは知っていますが、誰かが Lat/Lng ポイントを取得して、それが米国の州 (または境界ボックス) 内にあるかどうかを確認できる数式を探しています。ポイントが特定のボックス (カリフォルニアなど) にあるかどうかを確認するために計算を行うことができる PHP 経由の方法はありますか?
2 に答える
まあ、どの州がどこにあるのかについて何かを教えてくれる公式はありません(もしあったとしたら、米国とメキシコの戦争の結果については完全にネタバレになっていたでしょう!)したがって、どこかからそのデータを取得する必要があります. .
これは、必要な精度に応じて、2 つの問題のいずれかに変わります。
メルカトル図法または同様の図法で表示したときに長方形の境界ボックスの詳細がある場合 (つまり、北と南に緯度、東と西に経度がある場合)、式は次のようになります。
inBox = latitude <= north && latitude >= south && longitude <= west && longitude >= east
詳細があり、状態の境界を定義する一連のポイントがある場合 (明らかに、ポイントが多いほど精度が高くなります)、ポリゴン内のポイントの問題の変形になり、関係することのみが保証されます。単純な多角形 (米国の州には、この C コードで使用されている境界線が交差したり、完全に取り囲まれたりするものはありません。これが球形アルゴリズムではなく 2D 平面アルゴリズムであるという事実によって影響を受けるエッジ ケースがある可能性がありますが、アルゴリズムからの不正確さがデータによって引き起こされるものよりも大きくなるためには、状態の境界にかなり正確なデータが必要になると思います。
私が考える最も簡単な方法は、各州にバインドされたボックスを使用することです。これは、CA の例である Flicker Geo API から見つけることができます- https://www.flickr.com/places/info/2347563