Определение положения пользователя с использованием LeafletJS

This commit is contained in:
Krivchikov Dmitry 2016-05-09 15:42:54 +03:00
parent c92c3a83da
commit 728a660ee2
1 changed files with 26 additions and 0 deletions

View File

@ -48,6 +48,10 @@ if (pointLat == pointLng) {
points.im = L.marker([userLat, userLng], {icon: categories.im, title: 'Вы здесь'}); points.im = L.marker([userLat, userLng], {icon: categories.im, title: 'Вы здесь'});
points.im.addTo(myMap); points.im.addTo(myMap);
points.im.bindPopup('<h3>Похоже, что вы здесь!</h3><img src="/ico/man.png" style="float: left; margin-right: 5px;" /> <b>Ваше местоположение</b> - это точка, которую можно добавить в маршрут. При первоначальной загрузке страницы определение координат происходит очень неточно, по вашему адресу в сети интеренет. При желании координаты можно уточнить, нажав соответствующую пиктограмму справа [ <div class="glyphicon glyphicon-screenshot _b"></div> ].<br/><br/> <button type="button" class="btn btn-default" onclick="addToRoute(\'im\')"><span class="glyphicon glyphicon-map-marker"></span> Добавить в маршрут</button>'); points.im.bindPopup('<h3>Похоже, что вы здесь!</h3><img src="/ico/man.png" style="float: left; margin-right: 5px;" /> <b>Ваше местоположение</b> - это точка, которую можно добавить в маршрут. При первоначальной загрузке страницы определение координат происходит очень неточно, по вашему адресу в сети интеренет. При желании координаты можно уточнить, нажав соответствующую пиктограмму справа [ <div class="glyphicon glyphicon-screenshot _b"></div> ].<br/><br/> <button type="button" class="btn btn-default" onclick="addToRoute(\'im\')"><span class="glyphicon glyphicon-map-marker"></span> Добавить в маршрут</button>');
points.circle = L.circle([userLat, userLng], 0);
points.circle.addTo(myMap);
suggestInit('#addressField'); suggestInit('#addressField');
/** /**
@ -146,6 +150,10 @@ function init(lat, lng) {
} }
}); });
// Пользователь на карте
myMap.on('locationfound', onLocationFound);
myMap.on('locationerror', onLocationError);
return true; return true;
} }
@ -550,3 +558,21 @@ function getShortLink()
} }
}); });
} }
function onLocationFound(e) {
myMap.removeLayer(points.circle);
points.circle = L.circle(e.latlng, e.accuracy);
points.circle.addTo(myMap);
$.cookie('userLat', e.latlng.lat);
$.cookie('userLng', e.latlng.lng);
myMap.removeLayer(points.im);
points.im.setLatLng(e.latlng).addTo(myMap);
myMap.setView(e.latlng, myMap.getZoom());
return true;
}
function onLocationError(e) {
alert(e.message);
}