来自Google地方API的不准确搜索结果(地理编码)

时间:2016-07-08 08:23:57

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

我正在尝试对菲律宾的一些地址进行地理编码,但是当我通过Google API进行搜索时,我的搜索结果非常不准确(距离我想要的点10kms,而maps.google.com提供了更好的结果)大约有几百米的误差。)

在此处阅读其他帖子(并测试Google Maps API和Google Places API)后,似乎maps.google.com基于Google Place,因此应该可以选择实施...但是,我仍然可以我正在寻找的地址附近的地方列表。

我的电话看起来像这样:

address="Balay Expo Centro Building, EDSA corner McArthur Avenue, Araneta Center, Cubao, Quezon City, Metro Manila, Philippines"
google_places = GooglePlaces(API_KEY)
query_result = google_places.nearby_search(
    location = address,
    radius=5)

for place in query_result.places:
    print place.name
    print place.geo_location

有谁知道如何提高精确度?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用网络服务API?如果Web服务api更精确,您可以在应用程序中使用json-parser。

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

答案 1 :(得分:0)

当您使用Nearby Search时,您似乎正在使用Text Search。我在这里链接Places API网络服务指南,因为它解释了这两种搜索之间的区别。

由于您似乎正在使用python-google-places,这就是(我认为)它的工作原理:

address = "Balay Expo Centro Building, EDSA corner McArthur Avenue, Araneta Center, Cubao"
user_location = "14.617766,121.057154"  # Cubao
google_places = GooglePlaces(API_KEY)
query_result = googlemaps.places(
    query = address,
    lat_lng = user_location,
    radius=500)

实际上,lat_lngradius是可选的,但如果将其设置为合理的值以反映用户的位置,结果可能会更好。