Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps api 3 使用GooglePlacesAPI获取给定地点的附近城市_Google Maps Api 3_Geocode - Fatal编程技术网

Google maps api 3 使用GooglePlacesAPI获取给定地点的附近城市

Google maps api 3 使用GooglePlacesAPI获取给定地点的附近城市,google-maps-api-3,geocode,Google Maps Api 3,Geocode,我试图编写一个Java应用程序,给定一个城市和一个半径,返回附近所有的城市。我原以为谷歌地图API可以做到这一点,但我对Places API不感兴趣,它只返回感兴趣的点(例如餐馆等)。是否有一种方法可以通过google API实现这一点,或者有其他API(或实现这一点的方法)可以推荐?您可能不想使用Places API。您可能想看看是否有一种方法可以使用地理编码/反向地理编码来获得您想要的东西。看 根据您的性能和准确性要求,您可能无法使用Google Maps API(或任何其他免费工具)轻松做

我试图编写一个Java应用程序,给定一个城市和一个半径,返回附近所有的城市。我原以为谷歌地图API可以做到这一点,但我对Places API不感兴趣,它只返回感兴趣的点(例如餐馆等)。是否有一种方法可以通过google API实现这一点,或者有其他API(或实现这一点的方法)可以推荐?

您可能不想使用Places API。您可能想看看是否有一种方法可以使用地理编码/反向地理编码来获得您想要的东西。看


根据您的性能和准确性要求,您可能无法使用Google Maps API(或任何其他免费工具)轻松做到这一点(尤其是在全球范围内),但您可能可以获得一些大致可行的功能,特别是如果您有地理限制(例如,仅在美国)这可能会简化事情。

我编写了一个代码片段,通过组合谷歌地图地理编码APIGeoNames.org API(除了文件获取内容之外,您还可以执行cURL请求),来检索附近的所有城市

/*
*根据城市名称和以公里为单位的半径获取城市
*/
//从谷歌地图地理编码API获取地理编码对象作为数组
$geocodeObject=json\u解码(文件\u获取\u内容('https://maps.googleapis.com/maps/api/geocode/json?address={城市名称},{国家代码}',true);
//从地理编码对象获取纬度和经度
$latitude=$geocodeObject['results'][0]['geometry']['location']['lat'];
$longitude=$geocodeObject['results'][0]['geometry']['location']['lng'];
//设置请求选项
$responseStyle='short';//响应的长度
$citySize='cities15000';//一个城市必须拥有的最低数量的公民
$radius=30;//以公里为单位的半径
$maxRows=30;//要检索的最大行数
$username='{YOUR username}';//您的GeoNames帐户的用户名
//根据GeoNames API中的范围作为数组获取附近的城市
$nearbyCities=json\u decode(文件\u获取\u内容('http://api.geonames.org/findNearbyPlaceNameJSON?lat=“.$latitude.&lng=”.$latitude.&style=”.$responseStyle.&cities=”.$citySize.&radius=”.$radius.&maxRows=”.$maxRows.&username=”.$username,true));
//foreach邻近城市获取城市详细信息
foreach($nearbyCities->geonamesas$cityDetails)
{
//在附近城市做点什么
}
请小心您的请求量,因为API是有限的

有关API的更多信息,请访问以下url:


如果您认为此问题重复,请将其标记为重复问题。不要将其他堆栈溢出帖子的链接作为答案。好的,很高兴知道!我想如果我把我的答案贴到任何地方,它可能会被标记为一个重复的答案…我会编辑答案,不会链接到其他帖子√geonames岩石!!谢谢你的提示!!!!