谷歌api应该只返回地址

时间:2015-07-01 12:15:54

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

我使用此网址获取Get请求的地址:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Nov&key=MyKet&types=address

但有时我只能得到没有房屋的街道,有时候我会得到甚至是城市(如果用俄语输入=明斯克:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=%D0%9C%D0%98%D0%9D%D0%A1%D0%9A&key=MyKey&types=address

但是我想要只有街道的房子,因为我正在写出租车应用程序,我只需要完整的地址,如果用户只选择了街道,那还不够。

因此,如果我从Google f2获取 - 没关系,但如果我从Google Proletarsk street 25, Bern, Switzerland获取 - 那就不行了。

当我收到Google对街道和地址的回复时,它总是返回相同的类型

Proletarsk street, Bern, Switzerland

所以如果返回值是街道或者它是一个完整的地址,我甚至无法区别。

你能给我任何建议吗?

1 个答案:

答案 0 :(得分:1)

根据您描述的用例,听起来您使用了错误的API。

如果您有地址,则应该使用the Geocoding API并希望Google地图为您解析并返回额外信息。您可以确定结果是否具有street_number,以便您可以判断结果是否包含完整地址。例如:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA
会给你一个像这样的结果:

    {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "1600",
               "short_name" : "1600",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Amphitheatre Parkway",
               "short_name" : "Amphitheatre Pkwy",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Mountain View",
               "short_name" : "Mountain View",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Santa Clara County",
               "short_name" : "Santa Clara County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "94043",
               "short_name" : "94043",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
         "geometry" : {
            "location" : {
               "lat" : 37.4223455,
               "lng" : -122.0841893
            },
            "location_type" : "ROOFTOP",
            "viewp.....

这会给你一个street_number,所以你可以告诉它是一个完整的地址。