<script type="text/javascript">
var ico=new LTIcon("<c:url value='/images/manPosition.gif'/>",[24,24],[12,12]);
var map;//地图对象
var i=-1; //判断序号
var pointsR=new Array(); //存放点
var title=new Array(); //存放描述
var markers=[]; //存放标记
var controlB; //标记控件
var positionIds=[]; //存放返回的Id
$(document).ready(function (){
map=new LTMaps("map");
//鼠标滚轮
map.handleMouseScroll();
//缩放控件
var controlZoom = new LTStandMapControl();
map.addControl( controlZoom ); //把控件加入到地图对象
//添加标注控件并把事件绑定到按钮
controlB = new LTMarkControl(ico);
controlB.setVisible(false);
document.getElementById("add").onclick=function (){controlB.btnClick()};
map.addControl( controlB );
LTEvent.addListener( controlB , "mouseup" , getPoi );
//如果有我的地点初始值,则load否则以天津为初始
<c:if test="${noPosition=='false'}">
load();
</c:if>
<c:if test="${noPosition!='false'}">
//天津
map.centerAndZoom("tianjin",5);
</c:if>
});
//添加标注时执行此函数
function getPoi(){
$("#divDialog").html("请输入地名:<input id='positionId' type='text' maxlength='300' style='width:360px;'>");
$("#divDialog").btnPrompt({title:"",callback: function(){addPositionDo();$("#divDialog").close()}});
}
function addPositionDo(){
var description = $("#positionId").val();
if(description==''){
alert("地名不能为空");
return false;
}else{
var poi = controlB.getMarkControlPoint();
$.post("<c:url value='/user/user/personal.ao?method=updatePosition' />",
{ x: poi.getLongitude(), y: poi.getLatitude(),title:description },
function(json){
positionIds[++i]=json["positionId"];
pointsR[i]=(new LTPoint(poi.getLongitude(),poi.getLatitude()));
title[i]=description;
markers[i] = new LTMarker(new LTPoint(poi.getLongitude(),poi.getLatitude()),ico);
map.addOverLay(markers[i]);
//消除api标注
controlB.btnClick();
controlB.btnClick();
show();
//给标记添加点击事件
LTEvent.addListener( markers[i] , "mouseover" , function(){
this.openInfoWinHtml(title[$.inArray(this,markers)])
});
});
return true;
}
}
//在层里显示结果
function show(){
var result="<ul>";
for(var i=0;i<pointsR.length;i++)
{
result+= "<li value='"+i+
"' onmouseover='showMess(this)'><a class='link_blue' href='javascript:void(0)' >"+
title[i]+"</a>";
result+="<span onclick='del(\""+i+"\");return false;'>删除</span></li>";
}
result+="</ul>"
document.getElementById("result").innerHTML=result;
}
//删除标记
function del(index){
if(confirm("是否要删除?"))
{
$.post("<c:url value='/user/user/personal.ao?method=deletePosition&' />",
{ id:positionIds[index] },
function(json){
map.removeOverLay( markers[index],true);
pointsR.splice(index,1);
title.splice(index,1);
markers.splice(index,1);
i--;
show();});
}
}
function load(){
var jsons=eval('${userForm.positionList}');
for(var j=0;j<jsons.length;j++){
var json=jsons[j];
positionIds[++i]=json["id"];
pointsR[i]=new LTPoint(json["x"],json["y"]);
title[i]=json["description"];
markers[i] = new LTMarker(new LTPoint(json["x"],json["y"]),ico);
map.addOverLay(markers[i]);
show();
//消除api标注
//controlB.btnClick();
//controlB.btnClick();
//给标记添加点击事件
LTEvent.addListener( markers[i] , "mouseover" , function(){
this.openInfoWinHtml(title[$.inArray(this,markers)])
});
map.getBestMap(pointsR);
}
}
function showMess(obj){
var index=$(obj).attr("value");
markers[index].openInfoWinHtml(title[index]);
map.moveToCenter(pointsR[index]);
map.zoomTo(4);
}
</script>
51地图 API 应用例子
最新推荐文章于 2025-11-27 11:20:24 发布
本文介绍了一个基于网页的地图标注系统实现方法,通过JavaScript实现了地图的加载、用户交互式的地标添加及删除功能,并提供了地标信息的持久化存储。该系统允许用户在地图上添加自定义位置并保存描述,同时支持对已添加的位置进行管理和删除。
7400

被折叠的 条评论
为什么被折叠?



