Google会根据密钥显示自动填充功能,显示不同的结果

时间:2017-02-22 17:21:16

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

当我在示例页https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete上输入查询Mountainview chem-dry时,我得到了结果。当我在jsfiddle中打开它时,输入我自己的api密钥,再次运行它,我得不到任何结果。我查看了请求,除了密钥和其他一些奇怪的查询参数(1d-33.936405187906715等),请求是相同的。代码中唯一的区别是api密钥。

1 个答案:

答案 0 :(得分:1)

Mountainview Chem-Dry被定义为服务区域业务。请注意,服务区域业务不应通过地点自动填充功能提供。

这些地方通常在回复中有0,0个坐标,没有意义在地图上显示没有精确坐标的地方。

如果您在使用Google的API密钥执行示例页面时查看网络活动,您会看到Mountainview Chem-Dry的地点ID是ChIJG-kOFY4NiYgRc2BFHIDJ7eg。

现在执行地点详细信息请求:

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJG-kOFY4NiYgRc2BFHIDJ7eg&key=YOUR_API_KEY

您将在响应中看到以下内容:

...
"geometry":{
  "location":{
    "lat":0,
    "lng":0
  },
  "location_type":"APPROXIMATE"
},
...

表示这是SAB。还要注意示例显示这个地方的位置(它在非洲大西洋的0,0坐标)

enter image description here

这真令人困惑。我猜Google的示例页面不应该使用能够显示所有位置的内部API密钥,因为您可以在开发人员控制台中生成的普通API密钥会过滤掉所有SAB。