map将折线等分,并得到等分点的坐标

//首先将折线上的坐标点存入一个数组中
var arr = [pt1,pt2,pt3],
    brr = [],
    i = 0;
while(i < arr.length){
    //这样可以按照画线的顺序获取相邻的两个坐标点
    var p1 = arr[i+1],
        p2 = arr[i];

    //计算两点之间的实际距离,百度地图用map.getDistance(pointA,pointB)计算,其他地图可以用自定义函数distanceTo
    //然后除以一个整数M(M具体根据情况而定),得到等分点的个数N
    //计算两点的经纬度的偏移值
    var disX = p1.x - p2.x;
        disY = p1.y - p2.y;
    //disX和disy分别除以N,得到每个等分点的经纬度分别需要偏移的值
    var newdisX = disX/N,
        newdisY = disY/N;
    //得到新的经纬度坐标
    var newptX = arr[i].x + newdisX * i,
        newptY = arr[i].y + newdisY * i;
    //实例化一个新的坐标点
    var newpt = new Point(newptX,newptY);
    //将新的坐标点存到一个新的数组中,该数组即为我们需要的坐标点的集合
    brr.push(newpt);
    i ++;
}

//计算两点的实际距离
distanceTo: function(pointA,pointB) {
    var distance = 0.0;
    if ((pointA.x != null) && (pointA.y != null) &&
    (pointB != null) && (pointB.x != null) && (pointB.y != null)) {
        var dx2 = Math.pow(pointA.x - pointB.x, 2);
        var dy2 = Math.pow(pointA.y - pointB.y, 2);
        distance = Math.sqrt(dx2 + dy2);
    }
    return distance;
}
时间: 2024-10-11 16:55:51

map将折线等分,并得到等分点的坐标的相关文章

页面联系我们加入地图map

1.首先要有密钥 ,可以自己注册获取或复制别人的 .搜索百度地图API 2.地图示例 <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=weuMwIVhzBCjZgGaPA5SVOQV">&l

百度map

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>我爱你</title> <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.2&services=true"></scrip

python中数据分析常用函数整理

一. apply函数 作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值.函数既可以使用默认的,也可以自定义.注意:在第二个输出中应用 head() 函数,因为它包含了很多行. #创建一个新函数 def num_missing(x): return sum(x.isnull()) #应用每一列 print "Missing values per column:" print data.apply(num_missing, axis=0) #axis=0 def

分形--谢尔宾斯基地毯

谢尔宾斯基地毯的构造与谢尔宾斯基三角形相似,区别仅在于谢尔宾斯基地毯是以正方形而非等边三角形为基础的.将一个实心正方形划分为的9个小正方形,去掉中间的小正方形,再对余下的小正方形重复这一操作便能得到谢尔宾斯基地毯. js实现思路和我之前写的分形--谢尔宾斯基三角形的类似. js效果: 贴关键代码: 1.画点 function point(x,y){ this.x = x; this.y = y; } 2.画线 function drawLine (ctx,point1,point2) { ctx

OpenCASCADE Curve Length Calculation

OpenCASCADE Curve Length Calculation [email protected] Abstract. The natural parametric equations of a curve are parametric equations that represent the curve in terms of a coordinate-independent parameter, generally arc length s, instead of an arbit

百度地图API使用介绍

百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html> 2. <head> 3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4. <title>Hello, World</title> 5. <sc

百度地图API2

百度地图API 开始学习百度地图API最简单的方式是看一个简单的示例.以下代码创建了一个520x340大小的地图区域并以天安门作为地图的中心: 1. <html> 2. <head> 3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4. <title>Hello, World</title> 5. <sc

百度地图API学习

常用技术 1.创建地图: var map = new BMap.Map("divid"); 2.创建坐标点:var point = new BMap.Point("经度","纬度"); 3.设置视图中心点:map.centerAndZoom(point,size); 4.激活滚轮调整大小功能:map.enableScrollWheelZoom(); 5.添加控件:map.addControl(new BMap.Xxx()); 6.添加覆盖物:ma

百度地图API-自定义图标覆盖物

地图覆盖物 Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法. Marker:标注表示地图上的点,可自定义标注的图标. Label:表示地图上的文本标注,您可以自定义标注的文本内容. Polyline:表示地图上的折线. Polygon:表示地图上的多边形.多边形类似于闭合的折线,另外您也可以为其添加填充颜色. Circle: 表示地图上的圆. InfoWindow:信息窗口也是一种特殊的覆盖物,它可以展示更为丰富的文字和多媒体信息.注意:同一时刻只能有一个信息窗口在地图上打开 m