一尘不染

Google Road Api SnapToRoad golang

go

我正在尝试实现Google的 snaptoroad API。但是我没有任何输出。我正在使用golang进行实施。我的代码如下:

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)

此代码产生的输出是

&{[]}
&maps.SnapToRoadResponse{}

返回空白输出。有人指出我在这里犯的错误吗?提前致谢。


阅读 292

收藏
2020-07-02

共1个答案

一尘不染

您的代码很好,但是您的API密钥似乎未激活。请访问googleAPI仪表板
以启用它。

您可以随时检查它是否正常运行:https
:
//roads.googleapis.com/v1/snapToRoads?path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796&key=YOUR_API_KEY

输出将是:

{
  "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"
    }
  ]
}
2020-07-02