谷歌地图V3 JS不会从UIWebView iOS 6(iPhone)发生“center_changed”

时间:2012-10-18 06:48:35

标签: javascript iphone ios google-maps-api-3 ios6-maps

我正试图在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>`

2 个答案:

答案 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指出这一点。