我正在使用传单来显示地图。
这是我的主要代码:
<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"> </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 © <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事件的当前位置?
答案 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()
。