6

我正在尝试显示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>`
4

2 回答 2

1

这是在 IOS 设备上的谷歌地图上不起作用的东西。拖动地图时会触发 center_changed,但在拖动完成之前中心不会更新。所以答案是,'不',你不能这样做。

于 2013-12-22T06:10:52.973 回答
-1

听起来你想要这个drag事件,而不是center_changed. 来自Google Maps Javascript API V3 参考

drag:当用户拖动地图时,此事件会重复触发。

像这样的东西:

google.maps.event.addListener(map, 'drag', function(){
    var mce = map.getCenter();
    moveCenterLat = mce.lat();
    moveCenterLng = mce.lng();
});

编辑:似乎地图边界在拖动时不再更新,因此虽然在拖动地图时拖动事件确实会触发,但两者getCenter()都会在拖动开始时返回地图的坐标。感谢@Zubair 指出这一点。

于 2012-11-15T03:47:41.997 回答