第一次求助-用鼠标点击地图完成标注实例 的扩展

0 views
Skip to first unread message

ebe...@163.com

unread,
Oct 29, 2006, 7:20:17 PM10/29/06
to 灵图地图接口讨论区
看到了chenchen老师的原贴,很不错
http://groups.google.com/group/Goolgle-Map-Chinese/browse_thread/thread/d02503379a408221

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>北京地图</title>
<script language="javascript" src=" http://api.51ditu.com/js/maps.js
"></script>
<SCRIPT language="javascript">

</SCRIPT>


</head>


<body>


<div id="myMap" style="position:relative; width:400px;
height:350px;"></div>
<FORM name=mapcoor>
象素坐标值<INPUT type=text name=mapcoorx>
<INPUT type=text name=mapcoory>
<INPUT type=button value="添加标记"
onclick="begin()"><br>
地理坐标值 <INPUT type=text name=mapcoorx1>
<INPUT type=text name=mapcoory1><br>


</FORM>
<script language="javascript">


var maps = new LTMaps( "myMap" );//创建地图
maps.cityNameAndZoom( "beijing" , 5 );//指定地图城市,图层


var moveControl = new LTStandMapControl();//创建移动控件
maps.addControl( moveControl );//将移动控件添加到地图


maps.handleKeyboard(); //键盘操作支持
maps.handleMouseScroll();//鼠标滚轮支持


function begin(){
var outerDiv = document.getElementById("myMap");
outerDiv.onclick = addpicture;
}
function end(){


}


function addpicture(event) {
// necessary for IE
if (!event) event = window.event;


show();
var outerDiv =
document.getElementById("myMap");


outerDiv.onclick = end;
return false;
}
function show() {


if(window.confirm("您要在这里添加一个标记吗?"))
{


var x=window.event.clientX;//鼠标X坐标
var y=window.event.clientY; //鼠标Y坐标
document.mapcoor.mapcoorx.value=x;
document.mapcoor.mapcoory.value=y;
var visiblePictureArray = [];//数组
visiblePictureArray[0] = [x,y];
alert("标记增加完成1");
var innerDiv =
document.getElementById("myMap");
alert("标记增加完成2");
//var
lmap=LTMaps(innerDiv);//得到LTMAPS对象
var
lpot=maps.getPointLatLng(visiblePictureArray[0])//得到LTPOINT对象


X_text = lpot.getLatitude();
Y_text = lpot.getLongitude();
document.mapcoor.mapcoorx1.value=X_text;
document.mapcoor.mapcoory1.value=Y_text;


var marker = new LTMarker(
lpot);//产生标记
maps.addOverLay( marker );

alert("标记增加完成");
}
else
{
var outerDiv = document.getElementById("myMap");
outerDiv.onclick = end;
}
}
</script>
</body>
</html>


但我需要扩展一下,就是需要,再弹出一个框,添加一个备注信息,对这个标签的备注,也能写到
表单里面 例:<INPUT type=text name=mapremark>
这样方便入库!
谢谢!

并且能显示在地图上~谢谢!

另外反映一个问题,今天地图全部连接不上!!!

ebe...@163.com

unread,
Oct 30, 2006, 6:30:34 PM10/30/06
to 灵图地图接口讨论区
看到了 chenchen 老师的

alert("请输入弹出框地址信息")


str=prompt("输入备注","备注信息");
LTEvent.addListener( marker ,
"mouseover" , function(){ marker.openInfoWinHtml( str )
});//

可是怎么才能和 mapcoorx1 mapcoory1 传递进入 <INPUT
type=text name=mapremark>
表单呢?

chenchen

unread,
Oct 30, 2006, 9:34:10 PM10/30/06
to 灵图地图接口讨论区
将str的值赋值给表单里面的text就可以了
mapremark.value = str;

ebe...@163.com

unread,
Oct 30, 2006, 10:59:53 PM10/30/06
to 灵图地图接口讨论区
谢谢~
已经搞定,还有个问题,这样的鼠标取值,是按照 left
top
取得,只能把地图放在左上,否则标记位置显示不正确!
要想把地图屏幕居中显示,怎么办?

另外,<div id="myMap" style="position:relative; width:400px;
height:350px;"></div>
放在table里面,注释显示不出来,估计是层
的序列问题,可否继续指点,谢谢!!!

chenchen

unread,
Oct 31, 2006, 12:37:34 AM10/31/06
to 灵图地图接口讨论区
目前的鼠标的坐标是以整个页面为容器的。如果把地图放在中央的话,你需要以地图所在的div为容器,确定当前坐标相对于div的位置信息。

ebe...@163.com

unread,
Oct 31, 2006, 1:41:51 AM10/31/06
to 灵图地图接口讨论区
明白了,我试试看~
谢谢

页面居中的话,可能还不好办

Reply all
Reply to author
Forward
0 new messages