以下代码初始化传单地图。初始化函数基于用户位置使地图居中。在调用初始化函数后,如何将地图中心更改为新位置?
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 © <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});
}
答案 0 :(得分:126)
例如:
map.panTo(new L.LatLng(40.737, -73.923));
答案 1 :(得分:102)
您也可以使用:
map.setView(new L.LatLng(40.737, -73.923), 8);
这取决于你想要的行为。 map.panTo()
将使用缩放/平移动画平移到该位置,而map.setView()
会立即将新视图设置为所需的位置/缩放级别。
答案 2 :(得分:6)
如果该点在当前视图中,则使用map.panTo();
不会执行任何操作。请改用map.setView()
。
我有一条折线,我必须每秒将地图中心对准折线的新点。检查代码: 良好:https://jsfiddle.net/nstudor/xcmdwfjk/
mymap.setView(point, 11, { animation: true });
坏:https://jsfiddle.net/nstudor/Lgahv905/
mymap.panTo(point);
mymap.setZoom(11);
答案 3 :(得分:1)
您还可以使用:
var latLon = L.latLng(40.737, -73.923);
var bounds = latLon.toBounds(500); // 500 = metres
map.panTo(latLon).fitBounds(bounds);
这将设置视图级别以适合地图传单中的边界。