我正试图在GoogleMap(Google maps V3 JS)
中显示UIWebView(ios6)
但是,
当我在webview中移动地图时,事件没有火center_changed
移动地图已完成,事件触发。
为什么呢?
...
有人告诉我页面:
http://gmaps-samples-v3.googlecode.com/svn/trunk/map_events/map_events.html
Mac'Safri访问 - 在地图移动时触发center_changed
iOS6 Safri访问 - 移动地图完成,点火center_changed
...
我想在移动时知道地图的中心坐标
请告诉我一个好方法。
`<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: iPhone Geolocation</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var moveCenterLat;
var moveCenterLng;
function initialize() {
var myOptions = {
zoom:reqZoomLevel,
disableDefaultUI:true,
draggable:true,
keyboardShortcuts:false,
scrollwheel:false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, 'center_changed', function(){
var mce = map.getCenter();
moveCenterLat = mce.lat();
moveCenterLng = mce.lng();
});
}
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>`
答案 0 :(得分:1)
这在IOS设备上的谷歌地图上不起作用。拖动地图时会触发center_changed,但在拖动完成之前中心不会更新。所以答案是'不',你不能这样做。
答案 1 :(得分:-1)
听起来你想要drag
事件,而不是center_changed
。来自Google Maps Javascript API V3 Reference:
拖动:当用户拖动地图时,会反复触发此事件。
这样的事情:
google.maps.event.addListener(map, 'drag', function(){
var mce = map.getCenter();
moveCenterLat = mce.lat();
moveCenterLng = mce.lng();
});
编辑:拖动时似乎不再更新地图边界,因此虽然拖动事件会在拖动地图时触发,但getCenter()
都会返回地图的坐标当阻力开始时。感谢@Zubair指出这一点。