给marker添加infowindow显示框。


上图就是初始化页面以及移动以后的页面的样子,其中经纬度是随着移动而改变的。
可以与上一篇的对比一下,其中Map里添加了一个scaleControl: true

就显示的是这个效果
<apex:page >
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.cn/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function myLoad() {
var myOptions = {
zoom: 15,
center: new google.maps.LatLng(23.14746, 113.34175376),
scaleControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(23.14746, 113.34175376),
draggable: true
});
marker.setMap(map);
var win2 = null;
//添加了侦听每次移动都会生成新的win1,但是会重叠覆盖;
google.maps.event.addListener(marker, 'dragend', function() {
var win1 = new google.maps.InfoWindow({
content: "经度" + marker.position.lat() + " " + "纬度:" + marker.position.lng()
});
win1.open(map, marker);
//每次都关闭上一个就不会有重复了;
if(win2) {
win2.close();
}
//给当前的infoWindow重新命名了;
win2 = win1;
});
}
window.onload = myLoad;
</script>
</head>
<body>
<style>
#map {
500px;
height: 400px;
float: left;
}
</style>
<div id="map"></div>
</body>
</apex:page>
浏览器要用IE