Определение положения пользователя с использованием LeafletJS
This commit is contained in:
parent
c92c3a83da
commit
728a660ee2
|
|
@ -48,6 +48,10 @@ if (pointLat == pointLng) {
|
|||
points.im = L.marker([userLat, userLng], {icon: categories.im, title: 'Вы здесь'});
|
||||
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.circle = L.circle([userLat, userLng], 0);
|
||||
points.circle.addTo(myMap);
|
||||
|
||||
suggestInit('#addressField');
|
||||
|
||||
/**
|
||||
|
|
@ -146,6 +150,10 @@ function init(lat, lng) {
|
|||
}
|
||||
});
|
||||
|
||||
// Пользователь на карте
|
||||
myMap.on('locationfound', onLocationFound);
|
||||
myMap.on('locationerror', onLocationError);
|
||||
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue