Google Road Api SnapToRoad golang

Posted

技术标签:

【中文标题】Google Road Api SnapToRoad golang【英文标题】: 【发布时间】:2017-02-24 14:35:17 【问题描述】:

我正在尝试实现 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

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

【问题讨论】:

先检查你的错误。 @AlexeySoshin 感谢兄弟的回复。但是没有错误..我检查了。 【参考方案1】:

您的代码很好,但您的 API Key 似乎没有激活。 请访问googleAPI dashboard 启用它。

您可以随时检查它是否正常工作: 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"
    
  ]

【讨论】:

以上是关于Google Road Api SnapToRoad golang的主要内容,如果未能解决你的问题,请参考以下文章

android 原生的 Road API

iOS - 具有 100 多个坐标的 Snap To Road API

snap-to-road 返回空响应

Road-最短路

BZOJ 2750 Road

POJ 3352 Road Construction