是否可以使用Google API查找道路类型?

时间:2018-01-05 05:52:44

标签: google-maps geolocation location

在我的应用程序中需要使用特定坐标(13.094119,80.198606)找到道路类型,即National Highway,By Pass Road。

我尝试使用Google Place服务和地理编码来查找特定的坐标位置详细信息,但很多时候它无法帮助我找到道路类型。

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

https://developers.google.com/maps/documentation/javascript/examples/geocoding-reverse

https://developers.google.com/maps/documentation/roads/speed-limits

    $httpRequest = curl_init();   
    curl_setopt($httpRequest, CURLOPT_HTTPHEADER, array("Content-Type:  application/json"));
    curl_setopt($httpRequest, CURLOPT_URL, "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=13.099765,%2080.162110&radius=500&type=Road&key=YOUR_KEY");
    $result = curl_exec($httpRequest);
    curl_close($httpRequest);
    $result = json_decode($result,true);
    foreach ($result['results'] as $key => $value) {
        if(strpos($value['vicinity'],'High Road')!== false || strpos($value['vicinity'],'NH Road')!== false || strpos($value['vicinity'],'National Road')!== false){
            echo $value['vicinity'];
        }
    }

1 个答案:

答案 0 :(得分:0)

目前,Google Maps API不会在其回复中公开此类信息。您可以在Google问题跟踪器中看到以下功能请求

我相信这些功能请求可能对您有意义。请随意为他们表达您的兴趣。

<强>更新

作为一种解决方法,尝试使用Roads API的对齐方式作为坐标:

https://roads.googleapis.com/v1/snapToRoads?path=13.094119%2C%2080.198606&key=YOUR_API_KEY

这将提供以下回复

{
  "snappedPoints":[
    {
      "location":{
        "latitude":13.094118495151756,
        "longitude":80.19856816820958
      },
      "originalIndex":0,
      "placeId":"ChIJ0dPfJw5kUjoR1sQRTkRxOIg"
    }
  ]
}

通过此回复,您可以获得道路ChIJ0dPfJw5kUjoR1sQRTkRxOIg的地点ID。现在将此地点ID与地理编码服务一起使用,该服务至少为您提供道路名称:

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJ0dPfJw5kUjoR1sQRTkRxOIg&key=YOUR_API_KEY

Geocoder工具中的结果相同:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#place_id%3DChIJ0dPfJw5kUjoR1sQRTkRxOIg

希望道路名称“Grand Northern Trunk Road”能够暗示它的类型。