- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有来自以下 URL 的 json 响应:
http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los%20Angeles,CA&sensor=false
JSON 路径 routes[x].legs[y].steps[z].polyline.points
:
"azq~Fhc{uOAlB?jB?^?P?P?B@V@|J@fA?xA@xA?h@?B?F?@?tA@xD?h@BnA@|A@rB@f@?d@@v@AxB?d@AZEzA?BIjB?@Cx@?@EzAAlC?F?F?T?B?f@DhHBhD?@?R?l@?R?|CCpDAj@E|DGnDKzCCb@OtBa@rFGfAAb@?@?FAp@?
ADbJD|F@bF@@@fERhd@BrEFdDBtBAvBAx@@l@?n@@^@bANnQ?rABnM?jC?hH@fA?@B
F?vC?hB?@BpM?@?j@@p@@|KB~Q@pFBbHBvF@z@?f@@jB?nA@z@DzD@VJ~CLfC\|E?B?@HnANtAVpDRpCLbB^dFTxC@LZvDF^HrALlCHEB|H?DBpEB~V?^BhDJ
R?@@\?~A?nABrL?@?jD@vD@vA?h@?BLx[?x@?B?\?F@pA?h@D~H?@Bz@Dr@RbCLfA\rBPv@@@T~@t@bCPf@z@xBd@rAf@dB\zAN~@PjAT~BFrADxAHX?z@?@HfW?x@?F?@@dD@^F|Y@v@D|JBzH?rB@tAApABxB?bA@dBBxABlAJ~CJrBDfANhBNjCLlCLpBHlBFnB@
C?|A?v@AlBCdA?r@EjEC|BItEMdGEtAIfEI|BKzDOzGEjCCl@?@MnDWHSrFSlFAd@?@qA|[Ct@Cj@At@AbA?hBAdBClBQjFQnECr@E
AYjFIzAWxDQpCYpEAFItACt@S~C]|GSlEMnCMtCGdAKlBQxDg@bLAT?BKrCAn@Ad@?x@?p@?J?|@@lA@z@BbABn@Bt@@@HnAPxB@LB^L
ATBP
AP~@Z~ALn@?@@Fd@|BjAfGd@dDd@|D\bFDf@D~@@f@B|@@xCJP?dBB
EDtE@bADlAREJlABh@Dp@F
@@xEJdBHlCF~C@nA?@?@DfG?
ADhLBbD@x@?F@~C?dCNbTDrIBxDLbO@~AVY?@DfHEvDGlC]fHGhD?lHPlP?@?B?R?@BfBNbRBpENfQDrGBvCDrEBtEBzABfABx@B~@^
FHx@H|@@bDPxAZpCTbDN
DBlC@j@@j@BhAHhLBvC?p@BlB?jAAfAAx@C@MzDM|B_@tDq@pF]fB]zAo@fCc@~Am@jBo@dBoCxG?@?@Sd@g@vAY~@St@W|@_@bBUhA_@zBWhBK
AOpAKfAEp@Gz@Cb@GpACZAVAh@Ad@AX?f@At@CpB"
最佳答案
Python 实现
这不是在 PHP 中,但如果您想从 Google Maps 解码折线字符串,则此线程位于搜索结果的顶部附近。如果其他人需要它(就像我一样),这里有一个用于解码折线字符串的 Python 实现。这是从 Mapbox JavaScript 版本移植的;在我的 repo page. 上找到更多信息
def decode_polyline(polyline_str):
index, lat, lng = 0, 0, 0
coordinates = []
changes = {'latitude': 0, 'longitude': 0}
# Coordinates have variable length when encoded, so just keep
# track of whether we've hit the end of the string. In each
# while loop iteration, a single coordinate is decoded.
while index < len(polyline_str):
# Gather lat/lon changes, store them in a dictionary to apply them later
for unit in ['latitude', 'longitude']:
shift, result = 0, 0
while True:
byte = ord(polyline_str[index]) - 63
index+=1
result |= (byte & 0x1f) << shift
shift += 5
if not byte >= 0x20:
break
if (result & 1):
changes[unit] = ~(result >> 1)
else:
changes[unit] = (result >> 1)
lat += changes['latitude']
lng += changes['longitude']
coordinates.append((lat / 100000.0, lng / 100000.0))
return coordinates
关于php - 如何在 PHP 中从 Google Maps Direction API 解码折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15380712/
我是一名优秀的程序员,十分优秀!