利用百度地图API开发地图软件,自定义坐标标示覆盖物,在放大和缩小地图的时候,坐标位置总是改变,请高手帮忙解决!!!

u011013470 2013-07-04 02:58:03
我还有一个问题,就是自定义坐标标示覆盖物,在放大和缩小地图的时候,坐标位置总是改变,这个你有办法解决吗???

这些是坐标标示覆盖物的效果:












以下是我的这个效果的全部JS代码,不知道如何固定坐标啊,在放大和做小地图的时候,标示的坐标位置总是在变

var map = new BMap.Map("allmap");
var point = new BMap.Point(105.955754,36.525109);
map.centerAndZoom(point,8);
map.enableScrollWheelZoom();


//获得原标示数组
// 定义标示图片
var icon1 = new BMap.Icon("image/标示1.jpg",new BMap.Size(128,128));
var icon2 = new BMap.Icon("image/标示3.jpg",new BMap.Size(128,128));
// 设置标示
var mark1 = new BMap.Marker(new BMap.Point(116.41433,39.889031),{icon:icon1});
var mark2 = new BMap.Marker(new BMap.Point(116.303371,39.858021),{icon:icon1});
var mark3 = new BMap.Marker(new BMap.Point(116.44092,39.899991),{icon:icon1});
var mark4 = new BMap.Marker(new BMap.Point(116.409156,39.968263),{icon:icon2});
var mark5 = new BMap.Marker(new BMap.Point(116.330967,39.960742),{icon:icon2});
var mark6 = new BMap.Marker(new BMap.Point(116.450549,39.927994),{icon:icon2});
var mark7 = new BMap.Marker(new BMap.Point(116.422379,39.92224),{icon:icon2});
var mark8 = new BMap.Marker(new BMap.Point(116.383859,39.924896),{icon:icon2});
var mark9 = new BMap.Marker(new BMap.Point(106.258806,38.289461),{icon:icon2});
var marks = [mark1,mark2,mark3,mark4,mark5,mark6,mark7,mark8,mark9];

//获得点击后的标示数组{
// 定义标示图片
var changeIcon1 = new BMap.Icon("image/标示2.jpg",new BMap.Size(128,128));
var changeIcon2 = new BMap.Icon("image/标示4.jpg",new BMap.Size(128,128));
// 设置标示
var changeMark1 = new BMap.Marker(new BMap.Point(116.41433,39.889031),{icon:changeIcon1});
var changeMark2 = new BMap.Marker(new BMap.Point(116.303371,39.858021),{icon:changeIcon1});
var changeMark3 = new BMap.Marker(new BMap.Point(116.44092,39.899991),{icon:changeIcon1});
var changeMark4 = new BMap.Marker(new BMap.Point(116.409156,39.968263),{icon:changeIcon2});
var changeMark5 = new BMap.Marker(new BMap.Point(116.330967,39.960742),{icon:changeIcon2});
var changeMark6 = new BMap.Marker(new BMap.Point(116.450549,39.927994),{icon:changeIcon2});
var changeMark7 = new BMap.Marker(new BMap.Point(116.422379,39.92224),{icon:changeIcon2});
var changeMark8 = new BMap.Marker(new BMap.Point(116.383859,39.924896),{icon:changeIcon2});
var changeMark9 = new BMap.Marker(new BMap.Point(116.411311,39.942932),{icon:changeIcon2});
var changeMarks = [changeMark1,changeMark2,changeMark3,changeMark4,changeMark5,changeMark6,changeMark7,changeMark8,changeMark9];


//创建Mark标示
for(var i=0;i<marks.length;i++){
// 将此标示放入地图
map.addOverlay(marks[i]);
//var markIndex = marks[i];
(function(i){
marks[i].addEventListener("click",function(e){
for(var j=0;j<marks.length;j++){
if(j == i){
//alert("i = " + i);
var n = j+1;
doClick(n);
// 当鼠标点击这个标示的时候,标示的颜色改
map.addOverlay(changeMarks[j]);
}else{
map.removeOverlay(changeMarks[j]);
}
}
});
})(i);
}
...全文
1960 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_25283555 2015-01-13
  • 打赏
  • 举报
回复
icon大小问题,代码里写的是128x128,但从图上看,没有一个icon是这么大的。你参考一下这篇文章:http://www.cnblogs.com/jz1108/archive/2011/09/15/2152122.html
未知数 2013-07-04
  • 打赏
  • 举报
回复
没做过百度地图,你找找api中有没有地图坐标与页面坐标的转换函数

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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