基于Arcgis for javascript实现百度地图ABCD marker的效果_javascript技巧
程序员文章站
2022-03-07 20:31:43
...
先给大家展示实现后效果:
");
var title = $("").addClass("search-name-title")
.append(name).append(icon).appendTo(li)
.data("attr",data[i]);
var desc = $("").addClass("search-detail").html(data[i].desc).appendTo(li);
var more = $("").addClass("detail").appendTo(li).html(">>详细");
title.on("mouseover",function(){
var attr = $(this).data("attr");
$("#icon"+attr.id).css("background","url('images/blue.png')");
var pt=new Point(attr.x,attr.y,{"wkid":4326});
var pms = new esri.symbol.PictureMarkerSymbol("images/blue.png",24,26)
var gImg = new Graphic(pt,pms);
gLyrHover.add(gImg);
});
title.on("mouseout",function(){
var attr = $(this).data("attr");
$("#icon"+attr.id).css("background","url('images/red.png')");
gLyrHover.clear();
});
title.on("click",function(){
var attr = $(this).data("attr");
showCity(attr);
});
var pt=new Point(data[i].x,data[i].y,{"wkid":4326});
var pms = new esri.symbol.PictureMarkerSymbol("images/red.png",24,26)
var gImg = new Graphic(pt,pms,data[i]);
gLyr.add(gImg);
var font = new esri.symbol.Font();
font.setSize("10pt");
font.setFamily("微软雅黑");
var text = new esri.symbol.TextSymbol(data[i].id);
text.setOffset(0,-2);
text.setFont(font);
text.setColor(new dojo.Color([255,255,255,100]));
var gLbl = new esri.Graphic(pt,text,data[i]);
gLyrLbl.add(gLbl);
}
gLyr.on("mouse-over",function(e){
map.setMapCursor("pointer");
var sms = e.graphic.symbol;
sms.url = "images/blue.png";
gLyr.redraw();
$("#icon"+e.graphic.attributes.id).css("background","url('images/blue.png')");
});
gLyr.on("mouse-out",function(e){
map.setMapCursor("default");
var sms = e.graphic.symbol;
sms.url = "images/red.png";
gLyr.redraw();
$("#icon"+e.graphic.attributes.id).css("background","url('images/red.png')");
});
gLyr.on("click",function(e){
var attr = e.graphic.attributes;
showCity(attr);
});
});
function showCity(attr){
var pt=new Point(attr.x,attr.y,{"wkid":4326});
map.infoWindow.setTitle(attr.name);
map.infoWindow.setContent(attr.desc);
map.infoWindow.resize(200,80);
map.infoWindow.show(pt);
map.centerAndZoom(pt,0);
}
});
为直观期间,先贴出来我做的效果
列表展示和地图展示以及联动
显示信息
实现思路:
1、列表与地图的互动
鼠标经过列表时,修改列表图标,并根据列表返回的值在地图上绘蓝色的marker;鼠标移出,修改列表图标为红色,清空地图marker图层。
关键代码:
title.on("mouseover",function(){ var attr = $(this).data("attr"); $("#icon"+attr.id).css("background","url('images/blue.png')"); var pt=new Point(attr.x,attr.y,{"wkid":4326}); var pms = new esri.symbol.PictureMarkerSymbol("images/blue.png",24,26) var gImg = new Graphic(pt,pms); gLyrHover.add(gImg); }); title.on("mouseout",function(){ var attr = $(this).data("attr"); $("#icon"+attr.id).css("background","url('images/red.png')"); gLyrHover.clear(); });
2、地图与列表的互动
鼠标经过地图红色的marker时,修改对应列表图标,并将红色 marker的图片换成蓝色的;鼠标移出,修改对应列表图标,并修改marker为红色。
关键代码:
gLyr.on("mouse-over",function(e){ map.setMapCursor("pointer"); var sms = e.graphic.symbol; sms.url = "images/blue.png"; gLyr.redraw(); $("#icon"+e.graphic.attributes.id).css("background","url('images/blue.png')"); }); gLyr.on("mouse-out",function(e){ map.setMapCursor("default"); var sms = e.graphic.symbol; sms.url = "images/red.png"; gLyr.redraw(); $("#icon"+e.graphic.attributes.id).css("background","url('images/red.png')"); });
3、地图上ABCD的文字是一个单独的图层,不参与互动。
4、数据以JSON形式存在。
var data = [ { "id":"A","name":"拉萨", "x":91.162998, "y":29.71042, "desc":"拉萨是中国*自治区的首府,*的政治、经济、文化和宗教中心,也是藏传佛教圣地。" }, { "id":"B", "name":"西宁","x":101.797303,"y":36.593642, "desc":"西宁是青海省的省会,古称西平郡、青唐城,取”西陲安宁“之意,是整个青藏高原最大的城市。" }, { "id":"C","name":"兰州","x":103.584297,"y":36.119086, "desc":"兰州,甘肃省省会,西北地区重要的工业基地和综合交通枢纽,西部地区重要的中心城市之一,丝绸之路经济带的重要节点城市。" }, { "id":"D","name":"成都","x":104.035508,"y":30.714179, "desc":"成都,简称蓉,四川省省会,1993年被国务院确定为西南地区的科技、商贸、金融中心和交通、通讯枢纽。" } ];
完整代码:
推荐阅读
-
JS基于面向对象实现的放烟花效果_javascript技巧
-
网站基于flash实现的Banner图切换效果代码_javascript技巧
-
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码_javascript技巧
-
JS基于面向对象实现的放烟花效果_javascript技巧
-
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码_javascript技巧
-
JS基于Mootools实现的个性菜单效果代码_javascript技巧
-
基于javascript实现漂亮的页面过渡动画效果附源码下载_javascript技巧
-
网站基于flash实现的Banner图切换效果代码_javascript技巧
-
JS基于VML技术实现的五角星礼花效果代码_javascript技巧
-
JS基于VML技术实现的五角星礼花效果代码_javascript技巧