[javascript] Leaflet.js에서지도 중심을 변경하는 방법

다음 코드는 전단지 맵을 초기화합니다. initialize 함수는 사용자 위치를 기반으로지도를 중앙에 배치합니다. 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});    
} 



답변

예를 들면 :

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


답변

다음을 사용할 수도 있습니다.

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

그것은 당신이 원하는 행동에 달려 있습니다. map.panTo()확대 / 축소 / 이동 애니메이션을 사용하여 위치로 이동하고 map.setView()즉시 새보기를 원하는 위치 / 확대 / 축소 수준으로 설정합니다.


답변

map.panTo();포인트가 현재보기에있는 경우 사용 은 아무 작업도 수행하지 않습니다. map.setView()대신 사용하십시오 .

저는 폴리 라인이 있었고 매초마다 폴리 라인의 새로운 지점에지도를 중앙에 배치해야했습니다. 코드 확인 : GOOD : https://jsfiddle.net/nstudor/xcmdwfjk/

mymap.setView(point, 11, { animation: true });        

나쁨 : https://jsfiddle.net/nstudor/Lgahv905/

mymap.panTo(point);
mymap.setZoom(11);


답변

다음을 사용할 수도 있습니다.

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

이렇게하면지도 전단지의 경계에 맞게보기 수준이 설정됩니다.


답변