Search code examples
google-mapsgogoogle-roads-api

Google Road Api SnapToRoad golang


I was trying to implement google's snaptoroad api. But I am not getting any output. I am using golang for the implementation. My Code is as follows:

mapClient, err := maps.NewClient(maps.WithAPIKey(GoogleApiServerKey))
if err != nil{
    log.Println(err)
}

//Input
latlng := maps.LatLng{}
path := []maps.LatLng{}
latlng.Lat = 9.7162348
latlng.Lng = 76.6702793
path = append(path, latlng)
latlng.Lat = 9.7162400
latlng.Lng = 76.715195
path = append(path, latlng)
latlng.Lat = 9.7162410
latlng.Lng = 76.7759261
path = append(path, latlng)

inputRequest := &maps.SnapToRoadRequest{
    Path: path,
}

outputResponse, err := mapClient.SnapToRoad(context.Background(), inputRequest)

fmt.Println(outputResponse)
pretty.Println(outputResponse)

The Output this code produces are

&{[]}
&maps.SnapToRoadResponse{}

Blank output is returned. Anyone please point out the mistake I made here? Thanks in advance.


Solution

  • Your code is fine, but It seems that your API Key is not activated. Please visit googleAPI dashboard to enable it.

    You can always check it working: https://roads.googleapis.com/v1/snapToRoads?path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796&key=YOUR_API_KEY

    the output would be:

    {
      "snappedPoints": [
        {
          "location": {
            "latitude": 60.170877918672588,
            "longitude": 24.942699821922421
          },
          "originalIndex": 0,
          "placeId": "ChIJNX9BrM0LkkYRIM-cQg265e8"
        },
        {
          "location": {
            "latitude": 60.170876898776406,
            "longitude": 24.942699912064775
          },
          "originalIndex": 1,
          "placeId": "ChIJNX9BrM0LkkYRIM-cQg265e8"
        },
        {
          "location": {
            "latitude": 60.170874902634374,
            "longitude": 24.942700088491474
          },
          "originalIndex": 2,
          "placeId": "ChIJNX9BrM0LkkYRIM-cQg265e8"
        }
      ]
    }