Определение положения пользователя с использованием 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 = 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);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue