我有一个简单的 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>";
}
此方法返回以下内容,lat:51.992 和 long: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 只能与谷歌地图一起使用;禁止在地图上不显示的地理编码结果。 来源)
我知道这不是一个真正的程序员问题,但由于 geonames 论坛并不活跃,我想我会在这里发布。