通过google maps api

时间:2017-08-29 17:13:49

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

我有一个自由文本,我需要转换为坐标,但文本旨在道路和道路注入。

问题是谷歌api地理编码服务返回附近的建筑物,但我需要自己的道路。

例如: 在拉斯维加斯寻找us95和日落返回

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "U.S. 95",
               "short_name" : "US-95",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Whitney Ranch",
               "short_name" : "Whitney Ranch",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Henderson",
               "short_name" : "Henderson",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Clark County",
               "short_name" : "Clark County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nevada",
               "short_name" : "NV",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "89014",
               "short_name" : "89014",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "US-95 & W Sunset Rd, Henderson, NV 89014, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.0636796,
                  "lng" : -115.0334434
               },
               "southwest" : {
                  "lat" : 36.0632289,
                  "lng" : -115.033988
               }
            },
            "location" : {
               "lat" : 36.0635045,
               "lng" : -115.0336492
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.0648032302915,
                  "lng" : -115.0323667197085
               },
               "southwest" : {
                  "lat" : 36.0621052697085,
                  "lng" : -115.0350646802915
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJf0Azwu_QyIARci-cUiUBGMg",
         "types" : [ "route" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "U.S. 95",
               "short_name" : "US-95",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Henderson",
               "short_name" : "Henderson",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Clark County",
               "short_name" : "Clark County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nevada",
               "short_name" : "NV",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "89011",
               "short_name" : "89011",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "US-95 & W Sunset Rd, Henderson, NV 89011, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.0616173,
                  "lng" : -115.029007
               },
               "southwest" : {
                  "lat" : 36.0591372,
                  "lng" : -115.0301591
               }
            },
            "location" : {
               "lat" : 36.0603734,
               "lng" : -115.0295973
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.0617262302915,
                  "lng" : -115.0282340697085
               },
               "southwest" : {
                  "lat" : 36.0590282697085,
                  "lng" : -115.0309320302915
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJmZvnMeTQyIARi5giBwp9Ylc",
         "types" : [ "route" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "U.S. 95",
               "short_name" : "US-95",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Whitney Ranch",
               "short_name" : "Whitney Ranch",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Henderson",
               "short_name" : "Henderson",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Clark County",
               "short_name" : "Clark County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nevada",
               "short_name" : "NV",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "89014",
               "short_name" : "89014",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "US-95 & W Sunset Rd, Henderson, NV 89014, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.065207,
                  "lng" : -115.0334417
               },
               "southwest" : {
                  "lat" : 36.0648819,
                  "lng" : -115.0334889
               }
            },
            "location" : {
               "lat" : 36.065045,
               "lng" : -115.0334589
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.06639343029149,
                  "lng" : -115.0321163197085
               },
               "southwest" : {
                  "lat" : 36.0636954697085,
                  "lng" : -115.0348142802915
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJ5bnQNO7QyIAReqWyr22kKYc",
         "types" : [ "route" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "U.S. 95",
               "short_name" : "US-95",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Midway",
               "short_name" : "Midway",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Henderson",
               "short_name" : "Henderson",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Clark County",
               "short_name" : "Clark County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nevada",
               "short_name" : "NV",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "89011",
               "short_name" : "89011",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "US-95 & W Sunset Rd, Henderson, NV 89011, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.0631541,
                  "lng" : -115.0303368
               },
               "southwest" : {
                  "lat" : 36.0628498,
                  "lng" : -115.0303404
               }
            },
            "location" : {
               "lat" : 36.063002,
               "lng" : -115.0303386
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.0643509302915,
                  "lng" : -115.0289896197085
               },
               "southwest" : {
                  "lat" : 36.0616529697085,
                  "lng" : -115.0316875802915
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJAzrYiuXQyIARIZcbN66ts10",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}

但我需要的真实坐标是:36.063761 -115.032024。

有关如何获得道路坐标的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我建议您在

中找到有关美国道路格式的建议

https://developers.google.com/maps/faq#geocoder_highways

因此,在您的情况下,搜索字符串应为"美国。 95&日落,拉斯维加斯"。相应的请求将是(注意URL编码的搜索字符串)

https://maps.googleapis.com/maps/api/geocode/json?address=U.S.%2095%20%26%20sunset%2C%20las%20vegas&key=YOUR_API_KEY

此请求返回一个类型交集的结果,如我的屏幕截图所示

enter image description here

您还可以在地理编码工具中看到这一点:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3DU.S.%252095%2520%2526%2520sunset%252C%2520las%2520vegas

我希望这有帮助!