我想在地图上绘制与我通过 Google Directions API 获取的方向 JSON 相对应的路线:https://developers.google.com/maps/documentation/directions/start https://developers.google.com/maps/documentation/directions/start
我已经弄清楚如何从步骤字段中提取纬度和经度,但这并不能很好地遵循弯曲的道路。我认为我需要的是解码折线信息,我找到了谷歌关于如何编码折线的说明:https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/utilities/polylinealgorithm
我确实在这里找到了一些 Android 代码以及解码折线的 Javascript,例如:
使用 google Directions API 的地图视图绘制方向 - 解码折线 https://stackoverflow.com/questions/6708408/map-view-draw-directions-using-google-directions-api-decoding-polylines
android 获取并解析Google Directions https://stackoverflow.com/questions/2964982/android-get-and-parse-google-directions
但我找不到相同的 Objective-C iPhone 代码,有人可以帮我吗?我确信如果有必要的话我可以自己做,但如果它已经在某个地方可用,它肯定会节省我一些时间。
编辑:这里的关键是能够逐个字符地解码 Base64 编码。更具体地说,我从 Google 得到了类似 JSON 的内容,它是使用 base64 编码等进行编码的:
... "overview_polyline" : {
"points" : "ydelDz~vpN_@NO@QEKWIYIIO?YCS@WFGBEBICCAE?G@y@RKBEBEBAD?HTpB@LALALCNEJEFSP_@LyDv@aB\\GBMB"
},
...
注意:我应该提到这个问题是指 Google Maps API v1,在 v2 中使用 GMSPolyLine polyLineWithPath 来做到这一点要容易得多,下面的许多答案都会告诉你(感谢 @cdescours)。