javascript — установить карту leaflet.js для отображения текущего местоположения

установить карту leaflet.js для отображения текущего местоположения

Из полного кода видно, что ошибка здесь

 map = L.map('map', { doubleClickZoom: false }).setView([latit, longit], 13); 

потому что latit и longit не установлены (в JS они не определены, пока вы не дадите им какое-либо значение).

Вы можете запутаться, потому что этот код выполняется до того, как какой-либо из заданных вами обратных вызовов: Template.map.rendered будет выполнен после завершения этого скрипта.

Решением этой проблемы будет установка начального значения для этих параметров

 var latit = 0; var longit = 0; 

Ваша карта будет первоначально сосредоточена к западу от Африки.

Затем, когда map.rendered вам потребуется переназначить карту в обновленные переменные latit и longit (их обновление не обновит карту).

 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { latit = position.coords.latitude; longit = position.coords.longitude; // this is just a marker placed in that position var abc = L.marker([position.coords.latitude, position.coords.longitude]).addTo(map); // move the map to have the location in its center map.panTo(new L.LatLng(latit, longit)); } 

Если вы хотите, вы также можете передать положение маркера в panTo() :

 map.panTo(abc.getLatLng()); 

Наконец, помните, что всякий раз, когда вы передаете function() какой-то другой функции, которая будет выполняться позже в ответ на какое-то событие, это делается в JavaScript.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector