0

HTML5ジオロケーション機能をWebサイトに統合したいと考えています。私が抱えている問題は、選択したリストから最も近い都市/町を取得することです。このサイトは特定の数の町と引用でのみサポート/販売されているため、ブラウザがその場所を見つけて最寄りの町または都市を選択するという考え方です。簡単そうに聞こえますが、頭を動かすことができるのは「最も近いものを見つける」ことです。

ブラウザからlong/latを取得し、それを町/市の名前に変換するプロセスを支援するスレッドを見つけましたが、これは最も近いリストの名前を見つけるのに役立ちません:GoogleMapAPIを使用した逆ジオコーディングと緯度と経度の座標を使用して最も近い場所を取得するためのPHP

リストされている最も近い場所を見つけるAPI(できればGoogleに)はありますか?私は見てみましたが、そのようなものは見つかりませんでした。

4

3 に答える 3

4

半正矢関数の式を使用して、最寄りの都市を見つけることができます。次の関数は、地理的に配置された座標と配列の座標との間の距離を計算するために使用されます

function deg2rad(degrees){
radians = degrees * (Math.PI/180);
return radians;
}

function Haversine(lat1,lon1,lat2,lon2) {
  deltaLat = lat2 - lat1 ;
  deltaLon = lon2 - lon1 ;
  earthRadius = 3959; // in miles 6371 in meters.
  alpha    = deltaLat/2;
  beta     = deltaLon/2;
  a        = Math.sin(deg2rad(alpha)) * Math.sin(deg2rad(alpha)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(deg2rad(beta)) * Math.sin(deg2rad(beta)) ;
  c        = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  distance =  earthRadius * c;
  return distance.toFixed(2);
}
于 2013-01-01T18:51:11.877 に答える
0

最も簡単な方法は、半正矢関数または球面幾何学ライブラリのcomputeDistanceBetweenメソッドを使用して、ユーザーの場所からすべての都市までの「カラスが飛ぶように」距離を計算し、最小のものを選択することです。

場所が100未満の場合は、距離行列を使用して最短の運転距離を決定し、結果が最短の町を選択できます。

于 2013-01-01T15:52:30.250 に答える
0

最も簡単な解決策は、各町や都市の緯度座標をデータベースに保存し、ユーザーの場所の周囲で半径ベースの検索を実行して、最も近い結果を生成することだと思います。

この質問に与えられた受け入れられた答えを見てください。

php mysqlを使用して、半径で緯度と経度のデータベースを検索します

于 2013-01-01T17:12:48.453 に答える