百度地图【手动绘制折线】

yanhurenjian 2011-12-09 11:55:37
亲们........我现在遇到一个问题急需大家帮助啊!!!!!
最近因为工作需要在研究百度地图
现在遇到一个问题
需要实现一个再地图上手动绘折线的demo,我不知道怎么存储地图上点击的坐标!请赐教啊!不要再告诉我去看百度API实例了,恕我菜啊!真的没找到怎么记录鼠标点下的点!
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920)
], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
这个是添加折线覆盖物的代码。但是这里是给定的point,如何获取地图上自己点击的点,并且是多个点的坐标...
如果有知道的XDJM千万不要路过啊
一定帮帮偶哈!!!
...全文
507 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
红红的眼 2014-05-05
  • 打赏
  • 举报
回复
@wiki14 的方法可行
williamxia8 2013-12-04
  • 打赏
  • 举报
回复
这个是绘制,不是自动根据已有的坐标点进行绘制啊
wiki14 2011-12-09
  • 打赏
  • 举报
回复
like this:


var points = [];
map.addEventListener("click", function (e) {
map.clearOverlays();
points.push(new BMap.Point(e.point.lng, e.point.lat));
DrawPolyline(points);
});

function DrawPolyline(points) {
var polyline = new BMap.Polyline(points, {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
}
wiki14 2011-12-09
  • 打赏
  • 举报
回复
Polyline 折线。

存放的就是数组。


var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920)

], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});

建立一个数组,点击地图的某一个点,push到这个数组里。
然后传到这个方法。重新绘制地图上的折线即可。
yanhurenjian 2011-12-09
  • 打赏
  • 举报
回复
yanhurenjian 2011-12-09
  • 打赏
  • 举报
回复
yanhurenjian 2011-12-09
  • 打赏
  • 举报
回复
亲们........我现在遇到一个问题急需大家帮助啊!!!!!
最近因为工作需要在研究百度地图
现在遇到一个问题
需要实现一个再地图上手动绘折线的demo,我不知道怎么存储地图上点击的坐标!请赐教啊!不要再告诉我去看百度API实例了,恕我菜啊!真的没找到怎么记录鼠标点下的点!
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920)
], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
这个是添加折线覆盖物的代码。但是这里是给定的point,如何获取地图上自己点击的点,并且是多个点的坐标...
如果有知道的XDJM千万不要路过啊
一定帮帮偶哈!!!
yanhurenjian 2011-12-09
  • 打赏
  • 举报
回复
通过百度贴吧得到了解决,貌似在这里说在百度贴吧得到解决的会遭到砖头哦!
不好意思....呵呵
下面是代码
有需要的也可以问我呵呵!
同时感谢提供帮助的童鞋们!
谢谢你们哈!

设置map的click事件。


var p = []; //用来存储折线的点
var polyline;
var doneDraw = 0; //判断是否绘制折线结束

map.addEventListener("click",function(e1){
//当鼠标单击时
if(doneDraw == 0){
//判断是否绘制曲线完毕
p.push(new BMap.Point(e.point.lng,e.point.lat)) //存储曲线上每个点的经纬度
if(polyline){polyline.setPath(p);
}
//如果曲线存在,则获取折线上的点
else{
polyline = new BMap.Polyline(p);
}
//如果折线不存在,就增加此点
if(p.length<2){
return ;
}
//当折线上的点只有一个时,不绘制
map.addOverlay(polyline); //绘制曲线
}
});
yanhurenjian 2011-12-09
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧