获取ZoomStart的当前位置

时间:2017-01-12 11:29:13

标签: javascript leaflet

我正在使用传单来显示地图。

这是我的主要代码:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.2/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.0.2/dist/leaflet.js"></script>

这是我的正文代码:

<div id="mapid" style="height: 1000px">&nbsp;</div>
<script>
    var mymap = L.map('mapid').setView([51.505, -0.09], 13);
    L.tileLayer('https://b.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
        maxZoom: 18,
        minZoom: 3
    }).addTo(mymap);

    mymap.on('click', function (e) { alert(e.latlng); });
    mymap.on('zoomstart', function (e) { alert(e.latlng); });
</script>

此地图有两个事件,您可以从上面的代码中看到:on click事件和zoomstart事件。

当我点击地图时,我收到了弹出警告: LatLng(51.51600,-1.54213)

但是当我放大地图时,我收到了弹出警告:未定义

如何获得zoomstart事件的当前位置?

1 个答案:

答案 0 :(得分:2)

在Leaflet中,地图状态更改的事件没有latlng属性。

阅读文档,注意zoomstart / zoomend / etc事件之间的区别......

http://leafletjs.com/reference-1.0.2.html#map-map-state-change-events

...以及用户互动生成的事件,例如click

http://leafletjs.com/reference-1.0.2.html#map-interaction-events

根据事件类型,某些信息可用或不可用。在大多数情况下,事件具有对他们有意义的信息。

如果您想在缩放操作开始时知道地图的中心latlng,只需在事件处理程序中使用mymap.getCenter()