功能核心: 地理坐标转屏幕坐标
用到的插件:jquery animo动画插件
核心代码:
var point = new Point(lon, lat, map.spatialReference);
var screenPnt = map.toScreen(point);
功能代码:
<span style="font-size:14px;">for (var i = 0; i < json.length; i++) {</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>
var title = json[i].title;
var lon = json[i].lon;
var lat = json[i].lat;
var value = json[i].value;
var code = json[i].code;</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>//自己定义标签
var html = "";
html += "<div id='ring" + i + "' class='ring'>";
html += "<div id = 'div_mapIcoDiv" + i + "' title='" + title + "' lon='" + lon + "' lat='" + lat + "' value='" + value + "' code='" + code + "'>";</span><pre name="code" class="javascript"><span style="font-size:14px;"><span style="white-space:pre"> </span> lve = coustomTool.getLveAndColor(value);</span><pre name="code" class="javascript">html += "<div class = 'tip_name' style='border:1px solid " + lve.borderColor + "'>" + title + "</div>"; html += "<div class = 'tip_value' style='background: url(IMG/BG/" + lve.imgColor + ") no-repeat'>" + value + "</div>"; html += "</div>"; html += "</div>";
<span style="font-size:14px;"><span style="white-space:pre"> </span>//地理坐标转屏幕坐标并设置点位div的位置
var point = new Point(lon, lat, map.spatialReference);
var screenPnt = map.toScreen(point);</span>
<span style="font-size:14px;"> $("#ring" + i).css({ "left": screenPnt.x - 19 + "px", "top": screenPnt.y + 25 + "px", "position": "absolute", "z-index": "10", "cursor": "pointer" });</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>$("body").append(html); }</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>//点位动画效果</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>$(".class_mapIcoDiv").animo({ animation: ["rollIn"], duration: 0.5 }); </span><pre name="code" class="javascript"><span style="font-size:14px;"><span style="white-space:pre"> </span>$(".class_mapIcoDiv").bind("mouseover", function () {
$(this).animo({ animation: ["pulse"], duration: 0.5 });
});</span>
<span style="font-size:14px;"></span><pre name="code" class="javascript">
<span style="font-size:14px;">
</span>
var panStart = dojo.connect(map, "onPanStart", function () {
$(".ring").css("display", "none");
$(".esriPopup").css("display", "none");
});
var panEnd = dojo.connect(map, "onPanEnd", function () {
for (var i = 0; i < json.length; i++) {
var x = json[i].lon;
var y = json[i].lat;
var point = new Point(x, y, map.spatialReference);
screenPnt = map.toScreen(point);
$("#ring" + i).css({ "left": screenPnt.x - 19 + "px", "top": screenPnt.y + 25 + "px", "position": "absolute", "display": "block", "z-index": "1" });
}
$(".esriPopup").css("display", "block");
});
var zoomStart = dojo.connect(map, "onZoomStart", function () {
$(".ring").css("display", "none");
$(".esriPopup").css("display", "none");
});
var zoomEnd = dojo.connect(map, "onZoomEnd", function () {
for (var i = 0; i < json.length; i++) {
var x = json[i].lon;
var y = json[i].lat;
var point = new Point(x, y, map.spatialReference);
screenPnt = map.toScreen(point);
$("#ring" + i).css({ "left": screenPnt.x - 19 + "px", "top": screenPnt.y + 25 + "px", "position": "absolute", "display": "block", "z-index": "1" });
}
$(".esriPopup").css("display", "block");
});
//将地图事件的句柄加入到句柄集合中。
config._eventHandlers.push(panStart);
config._eventHandlers.push(panEnd);
config._eventHandlers.push(zoomStart);
config._eventHandlers.push(zoomEnd);