【问题标题】:Google maps V3 JS no happen "center_changed" from UIWebView iOS6(iPhone)谷歌地图 V3 JS 从 UIWebView iOS 6(iPhone)没有发生“中心改变”
【发布时间】:2012-10-08 13:24:46
【问题描述】:

我正在尝试在UIWebView(ios6) 中显示GoogleMap(Google maps V3 JS)
但是,
当我在 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>`

【问题讨论】:

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


    【解决方案1】:

    听起来您想要drag 事件,而不是center_changed。来自Google Maps Javascript API V3 Reference

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

    类似这样的:

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

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

    【讨论】:

    • 这是不正确的,因为当地图移动时拖动确实会触发,lat 和 lng 没有更新,实际上是拖动操作开始时的值
    • @Zubair:这绝对可以工作,但你是对的,它不再更新。在这里查看小提琴jsfiddle.net/lazd/ReLf7
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-09
      • 2014-03-01
      • 2013-01-26
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多