1

現在、Virtual Earth / Bing Maps Webサービスを使用して、一連の緯度/経度座標を逆ジオコーディングしようとしています。位置の住所を正常に取得できますが、その位置に最も近い重要な人口中心を取得できる必要があります。これにより、最も近い町/都市/メトロポリスなどの中心までの方向と距離を表示できます。場所が場所間を移動している場合(高速道路/高速道路など)。

数日間頭をぶつけてきて、どこにも行けなくなったので、これを行う方法について誰かがアイデアを持っていますか?

よろしくお願いします...

4

4 に答える 4

2

ここに記載されているウィキペディアロケーションサービスを使用してみて くださいhttp://www.geonames.org/export/wikipedia-webservice.html

于 2009-11-02T12:07:53.603 に答える
2

地球の大きさに比べて、最も近い都市は常にかなり近いと考えるのが安全だと思います。そのため、単純なピタゴラスの三角形を使用できます。

あなたが(lat0、long0)にいて、トライアル都市が(lat1、long1)にいると仮定します。

水平(EW)距離はおおよそです

d_ew = (long1 - long0) * cos(lat0)

これにcos(lat0)を掛けて、高緯度で経度線が接近することを考慮します。

垂直(NS)距離が簡単です

d_ns = (lat1 - lat0)

したがって、2点間の距離は

d = sqrt(d_ew * d_ew + d_ns * d_ns)

より厳密なタスクのためにこの方法を改良することができますが、これは最も近い都市には十分なはずです。

距離を比較する場合は、dの二乗を比較するのが適切です。つまり、sqrt操作を省略できます。

于 2009-11-02T12:19:44.067 に答える
0

主要都市の緯度と経度のデータベースを探しているようですので、距離を計算できます。

これは、世界中で数十を提供するページへのリンクです。

他にも、おそらく米国中心の人がいるかもしれません(しかし、それはあなたが望むものかもしれません)。

于 2009-11-02T12:00:07.380 に答える
0

私は次のことをします:

表1:

T_CityPopulation

田畑:

CityTownInfo、Population、LonLat

次に、しきい値を使用して、表1の各レコードの現在のLonLat間の距離を計算し、xマイルを超える町/都市を無視します。次に、結果を人口で並べ替えます。

編集:

テーブルを維持したくない場合でも、どこかに保存する必要があります。自分で維持すれば、他のサービスに頼るのではなく、少なくとも自分で管理できると思います。

于 2009-11-02T12:30:42.067 に答える