特定の緯度と経度から最も近い近くの都市を取得する単純な php 関数があります。
function findCity($lat, $lng, $username) {
$json_url = "http://api.geonames.org/findNearbyPlaceNameJSON?lat=" . $lat . "&lng=" . $lng . "&username=" . $username;
$json = file_get_contents($json_url);
$json = str_replace('},
]', "}
]", $json);
$data = json_decode($json);
echo "<pre>";
print_r($data);
echo "</pre>";
}
このメソッドは、緯度: 51.992 および経度: 4.89 で次を返します。
stdClass Object
(
[geonames] => Array
(
[0] => stdClass Object
(
[countryName] => Netherlands
[adminCode1] => 11
[fclName] => city, village,...
[countryCode] => NL
[lng] => 4.876389
[fcodeName] => populated place
[distance] => 1.42349
[toponymName] => Langerak
[fcl] => P
[name] => Langerak
[fcode] => PPL
[geonameId] => 2751924
[lat] => 51.931667
[adminName1] => South Holland
[population] => 0
)
)
)
これは最も近い都市を返しますが、私はこのようなものを探しています。最も近い大都市のみが返される場所。これは可能ですか?または、これを解決する他の選択肢があります。Google Geocoding API について読みましたが、結果を表示するために Google マップを使用していないため、使用できません。(注: Geocoding API は、Google マップと組み合わせてのみ使用できます。マップ上に表示せずに結果をジオコーディングすることは禁止されています。 出典)
これは実際のプログラマーの問題ではないことはわかっていますが、geonames フォーラムはあまり活発ではないため、ここに投稿することにしました。