Google Maps Web Service API会返回不同的地点ID

时间:2017-05-12 14:01:07

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

我在本地和服务器上拨打了两个电话( https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Singapore&key=MYAPIKEY )。但回应看起来不同。

服务器

{u'terms': [{u'value': u'Singapore', u'offset': 0}], u'description': u'Singapore', u'reference': u'CjQhAAAAqQkHLg3DEkoYCh6lVEJiqKveU1CMNkbK_6qQIcEZFtxd_NxVYVIbb1m2-koDTuBtEhDkB8K6HUla_TOyBQQDKAR3GhQ6-NKJG7K_w2XgfUtKuqTEFCR70A', u'structured_formatting': {u'main_text_matched_substrings': [{u'length': 9, u'offset': 0}], u'main_text': u'Singapore'}, u'matched_substrings': [{u'length': 9, u'offset': 0}], u'place_id': u'ChIJdZOLiiMR2jERxPWrUs9peIg', u'id': u'40c4b38e02b2cbbc038a8f25974c482dd9ee466f', u'types': [u'country', u'political', u'geocode']}

本地

{u'terms': [{u'value': u'Singapore', u'offset': 0}], u'description': u'Singapore', u'reference': u'CjQhAAAAW1UCg8Y9NAxV8rFkCcTutkBeufvz4rT2DiqCHwMgefWa_xKk5bwy6XZeegDpgfCSEhAzfOhzl7AfxFQvKnPKZ9FaGhSA7Obi7wXY-NGXB6g6lZO66GrQ-w', u'structured_formatting': {u'main_text_matched_substrings': [{u'length': 9, u'offset': 0}], u'main_text': u'Singapore'}, u'matched_substrings': [{u'length': 9, u'offset': 0}], u'place_id': u'ChIJyY4rtGcX2jERIKTarqz3AAQ', u'id': u'de9886df6eae88551e41600d0927dc8eb9f2c6ca', u'types': [u'locality', u'political', u'geocode']}

从上面的结果来看, id 看起来与众不同。任何原因?? 以及在服务器和本地获得相同结果的解决方案。

1 个答案:

答案 0 :(得分:0)

有趣的问题。

我会尽力帮助了解正在发生的事情以及如何解决这个问题。

正如您所看到的,服务器的响应会返回国家/地区ID,因为类型为[u'country', u'political', u'geocode']。来自本地计算机的响应返回城市地点ID,类型为[u'locality', u'political', u'geocode']

我认为本地计算机和服务器的地理位置不同。如果您未明确指定视口并根据IP地址的地理位置偏置结果,则地点自动填充还会考虑发送请求的计算机的公共IP地址。例如,当有人从美国搜索新加坡时,他/她通常意味着该国家,因此国家搜索在美国更受欢迎,并且建议的结果是国家/地区。相反,当地人可能更多地搜索城市而不是乡村,所以在新加坡,城市的结果有更高的重要性。

要解决您的问题并获得相同的结果,您应该在请求中指定应用位置和半径参数的视口。

让我们将视口中心设置为1.395126,103.831787,半径设置为50km

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Singapore&location=1.395126%2C103.831787&radius=50000&key=YOUR_API_KEY

您会看到结果是我的屏幕截图enter image description here

中显示的位置

现在将半径增加到500km

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Singapore&location=1.395126%2C103.831787&radius=500000&key=YOUR_API_KEY

你会看到,对于这个更大的区域,首选结果现在是国家enter image description here

我希望这能解释你的怀疑。