如何在Leaflet.js中更改地图中心


111

以下代码初始化一个传单地图。初始化功能基于用户位置将地图居中。调用initialize函数后,如何将地图中心更改为新位置?

function initialize() {
map = L.map('map');
L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png', {
    maxZoom: 18,
    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://cloudmade.com">CloudMade</a>'
}).addTo(map);

map.locate({setView: true, maxZoom: 8});    
} 

Answers:



128

您还可以使用:

map.setView(new L.LatLng(40.737, -73.923), 8);

这仅取决于您想要的行为。map.panTo()将使用缩放/平移动画平移到该位置,同时map.setView()立即将新视图设置为所需的位置/缩放级别。


4
我喜欢这一点,因为您还可以获得缩放级别,这非常有用。
孔可拉托先生2014年

2
您也可以将坐标作为数组传递:map.setView([40.737, -73.923], 8)或对象map.setView({lat:40.737, lng:-73.923}, 8)
leobelizquierdo

5
哑剧并没有显示动画,我用map.setView(latlng, map.getZoom(), { animation: true });
伊万·费雷尔别墅


4

您还可以使用:

var latLon = L.latLng(40.737, -73.923);
var bounds = latLon.toBounds(500); // 500 = metres
map.panTo(latLon).fitBounds(bounds);

这将设置视图级别以适合地图传单中的边界。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.