Google Maps API 进级:计算折线长度
2009-12-18 10:49
363 查看
转自:http://hi.baidu.com/xfm_zhr/blog/item/fbfe5c274a87a904908f9d28.html
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;
}
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;
}
相关文章推荐
- Google Maps API 进级:GoogleMaps中显示画中画
- Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等
- arcgis api for javascript 计算长度和面积
- Google Maps API 编码折线算法实现
- Google Maps API 进级:GPolyline对象
- Google Maps API 进级: GPolygon对象2
- Google Maps API 进级:通过XML文档加载Gpolyline或者Gpolygon
- Google Maps API 进级:GEvent命名空间简介
- Google Maps API 编码折线算法实现
- c++模板计算折线长度
- 螺旋折线的长度计算
- Google Maps API 进级: GoogleMaps常用事件及应用思路2
- Google Maps API 进级:在信息窗口GInfoWindow中嵌入Flash动画
- Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等
- java中如何计算一个字符串的byte长度(一个汉字多少字符)
- Google maps API开发(一)
- 计算数据类型占有 字节的长度,
- Google maps API开发(二)
- 汇编指令长度计算方法(学习汇编)
- 计算字符串长度