#django #leaflet #django-leaflet
#django #листовка #django-листовка
Вопрос:
Я новичок в geodjango и использую листовку для отображения карты в шаблоне, когда я нахожу свою позицию на карте, она показывает мне несколько метров от точки, но мне нужна реальная позиция, пожалуйста, помогите
// placeholders for the L.marker and L.circle representing user's current position and accuracy
var current_position, current_accuracy;
function onLocationFound(e) {
// if position defined, then remove the existing position marker and accuracy circle from the map
if (current_position) {
map.removeLayer(current_position);
map.removeLayer(current_accuracy);
}
var radius = e.accuracy / 2;
current_position = L.marker(e.latlng).addTo(map)
.bindPopup("You are within " radius " meters from this point, Lt: " e.latlng).openPopup();
current_accuracy = L.circle(e.latlng, radius).addTo(map);
}
function onLocationError(e) {
alert(e.message);
}
map.on('locationfound', onLocationFound);
map.on('locationerror', onLocationError);
// wrap map.locate in a function
function locate() {
map.locate({setView: true, maxZoom: 16});
}
// call locate every 3 seconds... forever
setInterval(locate, 3000);
Комментарии:
1. Вы не получите точных данных с гражданскими устройствами. GPS имеет допуск 10-20 метров. Это зависит от места, в котором вы находитесь, комнат, крупных городов, количества пойманных спутников и даже используемого вами устройства. На телефоне вы можете немного улучшить результаты и повысить точность GPS, по крайней мере, в Android есть такая опция, но это происходит за счет разряда батареи. Если вы используете Android, найдите приложение gps в магазине Google. Вы будете знать, сколько спутников летит рядом с вами. Чтобы исправить исправление, вам нужно как минимум 3 сальтелита, чем больше, тем лучше.
2. Обновление: вы также можете использовать высокую точность в своем коде — enableHighAccuracy: верно, но, как я писал выше, разрядка батареи очень велика.