百度地图Polyline画直线BUG

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
  百度地图画直线时有个BUG,取三个坐标点测试,
 
  var point1=  new BMap.Point(  113.33765,  23.150435);   
var point2=  new BMap.Point(  113.347655,  23.160435); 
var point3=  new BMap.Point(  113.357655,  23.170435);
 
  默认Point1到point3是从低纬度到高纬度,由于维度排序呈现递增趋势,也就是说,Point1是开始点,Point3是结束点,那么展现的地图的三个点能正常画出连线。如下图:
 
  var polyline =   new BMap.Polyline([ 
  point1, 
  point2, 
  point3 
], {strokeColor:  "blue", strokeWeight:  6, strokeOpacity:  0.5});
 
 
 
  现在我们把专递的序列顺序调换为point1->point3->point2,那么就出现问题,直线不能完整的绘画,只连接的两个点,这是因为百度地图的Polyline对象内为对转入的坐标点按其坐标位置
 
  进行排序导致的,测试如下:
 
  var polyline =   new BMap.Polyline([ 
  point1, 
  point3, 
  point2 
], {strokeColor:  "blue", strokeWeight:  6, strokeOpacity:  0.5});
 
 
 
  现在我们来测试折线是否也存在这个问题,首先我们也取同上三个坐标点,把point2经度向东移动稍微调下,使得三个点不再一条直线上。
 
  var point1=  new BMap.Point(  113.33765,  23.150435);//保持不变 
var point2=  new BMap.Point(  113.347655,  23.160435);//经度向东移动0.02为:(  113.347655,  23.160435)->(  113.367655,  23.160435) 
var point3=  new BMap.Point(  113.357655,  23.170435);//保持不变 
绘图顺序为:
 
  var polyline =   new BMap.Polyline([ 
  point1, 
  point3, 
  point2 
], {strokeColor:  "blue", strokeWeight:  6, strokeOpacity:  0.5});
 
  效果如下:
 
 
 
  为了同直线做对比,我们把坐标顺序调整为:
 
  var polyline =   new BMap.Polyline([ 
  point1, 
  point2, 
  point3 
], {strokeColor:  "blue", strokeWeight:  6, strokeOpacity:  0.5});
 
 
 
  我们仔细观察会发现,同样的调整了坐标序列顺序,虽然折线绘画出来了所有连线(若是直线则会出现断线情况),但是只要调整了序列顺序,绘画出来的图形就会发生变化。那么我们也许会疑问,
 
  到底百度绘画折线的规律是什么?分析上面的列子,我们总结出Polyline对象画线的规律为:
 
  1.直线:(简单理解为从开始点到结束点)
 
            1.1 同经度时,从低纬度到高纬度。
 
            1.2 同纬度时,从小经度度到大经度。
 
  2.折线:(不分经纬度大小高低,只是按坐标序列先后依次将各个点连接)
 
   ==================================================测试代码=====================================
 
  <!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
body, html,#allmap {width:   100%;height:   100%;overflow: hidden;margin:  0;} 
#l-map{height:  100%;width:  78%;float:left;border-right:  2px solid #bcbcbc;} 
#r-result{height:  100%;width:  20%;float:left;} 
</style> 
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script> 
<title>折线  </title> 
</head> 
<body> 
<div id="allmap"></div> 
</body> 
</html> 
<script type="text/javascript"> 
var map =   new BMap.Map(  "allmap"); 
var point =   new BMap.Point(  113.347655,  23.160435); 
map.centerAndZoom(point,   15); 
var point1=  new BMap.Point(  113.33765,  23.150435); 
var point2=  new BMap.Point(  113.347655,  23.160435); 
var point3=  new BMap.Point(  113.357655,  23.170435); 
var marker1 =   new BMap.Marker(point1);    // 创建标注 
var marker2 =   new BMap.Marker(point2);    // 创建标注 
var marker3 =   new BMap.Marker(point3);    // 创建标注 
map.addOverlay(marker1);    
map.addOverlay(marker2);  
map.addOverlay(marker3);  

var polyline =   new BMap.Polyline([ 
  point1, 
  point2, 
  point3 
], {strokeColor:  "blue", strokeWeight:  6, strokeOpacity:  0.5}); 
map.addOverlay(polyline); 

var view = map.getViewport([ 
  point1, 
  point2, 
  point3 
]); 
map.centerAndZoom(view.center, view.zoom); 
</script>

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Google地图Polyline是一种在Google地图上绘制并展示动态效果的功能。Polyline是一种用于绘制直线、曲线或自定义形状的图形对象。该功能允许用户在地图上绘制一条Polyline,并通过设置Polyline的属性和参数来创建动效果。 在Google地图上,可以使用PolylineOptions对象来设置Polyline的属性,如颜色、线宽等。通过PolylineOptions对象的add方法,可以将多个坐标点添加到Polyline中,并根据坐标点的顺序绘制Polyline。通过设置Polyline的动效果,可以使Polyline的绘制过程更加平滑和流畅。 一种常见的Polyline效果是通过逐步绘制坐标点来展示Polyline的绘制过程。通过设置PolylineOptions对象的geodesic属性为true,可以创建一个大地测距的Polyline,使其更加贴合地图的曲面。通过Polyline的setPoints方法,可以设置Polyline的坐标点数组。然后,通过Polyline的setGeodesic方法设置动的启动效果,如从起点到终点的动。 另一种Polyline效果是通过设置Polyline的虚线样式来实现。通过PolylineOptions对象的pattern方法,可以设置Polyline的虚线样式,如[10,20]表示绘制长度为10像素的线段和长度为20像素的空白区域。通过不断改变pattern数组的值,可以创建类似闪烁的动效果。 总之,Google地图Polyline是一种通过设置Polyline的属性和参数,在地图上绘制并展示动态效果的功能。通过不同的设置和参数组合,可以创建出各种各样的Polyline效果,使地图更加生动和可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值