谷歌api没有显示某些地方的结果

时间:2017-03-29 12:58:38

标签: google-maps-api-3 google-places-api google-places

您好我正在使用简单的谷歌地图将api靠近用户的自动取款机。我的客户住在纽约附近,由于一些奇怪的原因,api对那个地方显示零结果,但在我附近工作得很好(巴基斯坦)。我搜索了一下,发现这是谷歌的问题,其他一些地方也遇到了同样的问题。但我从来没有找到任何解决方案。 这是我使用的来电

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7128,74.1059&radius=10000000&keyword=atm&key=MY_KEY

我真的很感激帮助。谢谢:)

1 个答案:

答案 0 :(得分:1)

谷歌附近搜索最大距离为50,000米(31英里)。如果您尝试输入超过50,000,则无法正常工作。

还有另一种方法可以查找城市中的所有ATM。谷歌提供文本搜索请求

https://maps.googleapis.com/maps/api/place/textsearch/json?query=atm+in+Reno,NV,89501,USA&key={API_KEY}

query = keyword + in + city Name

使用纬度经度获取城市名称

http://maps.googleapis.com/maps/api/geocode/json?latlng=39.52963,-119.81380&sensor=true

有关如何使用纬度经度获取城市名称的更多信息

https://developers.google.com/maps/documentation/geocoding/start?csw=1#ReverseGeocoding

有关如何使用文本搜索请求的详细信息

https://developers.google.com/places/web-service/search

或(第二种方式)

还有另一种查找城市中所有ATM的方法。

  • 打开Goog​​le地图。
  • 创建10-12点或更多点纬度,经度值触发 请求。
  • 然后使用循环查找这些点内的所有位置。
  • 如果您想要更合适的结果,请增加第一个触发点 满足您的要求。

- 这只是我在php中创建的逻辑。

$triggerPoints = array("lat1,long1", "lat2,long2", "lat3,long3",....);

    foreeach(triggerPoints as $tP){
       $requestUrl = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=$tP&radius=[YOUR_RADIUS_VALUE]&type=[YOUR_TYPE]&name=panera&key=[YOUR_KEY_HERE";
       $results = file_get_contents($requestUrl);
       //Do what you want with response JSON data

    }