首页 文章

谷歌api应该只返回地址

提问于
浏览
3

我使用此URL获取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获得 Proletarsk street 25, Bern, Switzerland - 没关系,但是如果我从谷歌 Proletarsk street, Bern, Switzerland 获得 - 那就不行了 .

当我从谷歌获得街道和地址的响应时,它总是返回相同的类型

types =     (
        route,
        geocode
    );

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

Can you give me any advice?

1 回答

  • 1

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

    你应该使用the Geocoding API如果你有地址,并希望谷歌 Map 为你解析它并返回额外的信息 . 您可以确定结果是否具有 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 所以你可以告诉它是一个完整的地址 .

相关问题