有一推经纬度,现在需要计算其经纬度路过的相关路线。
关于坐标系说明:
腾讯地图API地址:https://lbs.qq.com/service/webService/webServiceGuide/route/webServiceRoute#8
腾讯地图接口会返回一个 方案路线坐标点串(该点串经过压缩,解压请参考:polyline 坐标解压)
polyline 坐标解压
polyline为数值型一维数组,格式为:
[坐标1纬度 , 坐标1经度 , 坐标2纬度 , 坐标2经度 , 坐标3纬度 , 坐标3经度…],
第一个坐标为原始未被压缩过的,之后的使用前向差分进行压缩,解压方法如下:
var coors=[50.243916,127.496637,-345,-1828,19867,-26154];
for (var i = 2; i < coors.length ; i++)
{coors[i] = coors[i-2] + coors[i]/1000000}
polyline_idx说明
下图为polyline的数组结构,路线全程的坐标点串都在polyline中, "polyline_idx"表达的是路段点串在polyline中的数组下标位置(而非坐标个数位置)的开始到结束序号,举个例子,假设某路段(steps)在polyline中是第4到第6个坐标,则polyline_idx为 “polyline_idx”:[6,11]
如果使用PHP 代码如下:
<?php
$coors = [50.243916, 127.496637, -345, -1828, 19867, -26154];
for ($i = 2; $i < count($coors); $i++) {
$coors[$i] = $coors[$i - 2] + $coors[$i] / 1000000;
}
// 输出结果
print_r($coors);
?>
高德(图盟,被收购了,目前离线地图较老)地图API地址: