1. 如何编码经纬度
对于静态、不需要修改的数据,可利用Google提供的在线编码工具进行获取。详情参见相关文档。
对于需动态生成的数据,可根据Google提供的编码算法说明,对进行编码实现使用。有关编码说明参加Google的相关文档。
2. 有关计算折线长度
基本思路:将地球作为一个完美球体。计算折线相邻两点的距离(弧长,半径*弧度)进行累加即可获取。
因为以上方法采取了近似处理,因此获取的值仅供参考。
几个关于GlatLng的方法:
GlatLng.lat();//返回角度值纬度
GlatLng.lng();//返回角度值经度
GlatLng.latRadians();//返回弧度值纬度
GlatLng.lngRadians();//返回弧度值经度。
计算弧长示例:
function getDistance2(from, to, unit) {
//地球半径
var R = 6378.137;
//千米英里转化进制
var M = 1.609344;
with (Math)
{
var lat1 = from.latRadians();
var lng1 = from.lngRadians();
var lat2 = to.latRadians();
var lng2 = to.lngRadians();
var dist = 2 * asin(sqrt( pow( (sin( (lat1 - lat2) /2 ) ), 2) + cos(lat1) * cos(lat2) * pow( (sin( (lng1 - lng2) / 2) ) ,2) ) ) * R;
}
if (unit=="M")
{
dist = dist / M;
}
return dist;
}
计算折线总长示例:
function getDistance() {
var dist = 0;
//折线上总的顶点数
var count = polyline.getVertexCount();
//历遍所有顶点,计算距离
for(var i=0; i<count-1; i++){
dist += getDistance2(polyline.getVertex(i), polyline.getVertex(i+1));
}
return dist;
}