Доработал определения положения пользователя - отказался от загрузки карты Ya

This commit is contained in:
Krivchikov Dmitry 2016-01-15 19:20:08 +03:00
parent 7f76a968f9
commit b7d01af3eb
3 changed files with 39 additions and 35 deletions

View File

@ -21,13 +21,13 @@ class IndexController extends Controller
self::addScript('/js/app.js?ver=' . App::getConfig('version'));
self::addScript('/js/jquery.cookie.js');
self::addScript('/js/map.js?ver=' . App::getConfig('version'));
self::addScript('/js/leaflet-routing-machine.js');
self::addScript('/js/route.js?ver=' . App::getConfig('version'));
self::addScript('/js/leaflet.markercluster.js');
self::addScript('/js/fotorama.js');
self::addScript('/js/suggest.js?ver=' . App::getConfig('version'));
self::addScript('/js/navigation.js?ver=' . App::getConfig('version'));
self::addScript('/js/map.js?ver=' . App::getConfig('version'));
self::addScript('/js/fotorama.js');
// self::addStyle('/css/style.css?ver=' . App::getConfig('version'));
self::addStyle('/css/leaflet.css');
@ -62,6 +62,15 @@ class IndexController extends Controller
self::addVar('pointLat', (isset($_GET['lat'])?floatval($_GET['lat']):0));
self::addVar('pointLng', (isset($_GET['lng'])?floatval($_GET['lng']):0));
if (isset($_COOKIE['userLat']) && isset($_COOKIE['userLng'])) {
self::addVar('userLat', $_COOKIE['userLat']);
self::addVar('userLng', $_COOKIE['userLng']);
} else {
$loc = IpInfo::geo($_SERVER['REMOTE_ADDR']);
self::addVar('userLat', $loc['lat']);
self::addVar('userLng', $loc['lng']);
}
$og = array();
if (isset($_GET['point']) && $_GET['point'] && is_numeric($_GET['point'])) {
$id = (int) $_GET['point'];

View File

@ -38,24 +38,16 @@ categories.simplepoint = L.icon({
// -----------------------------------------------------------------------------
/**
* Инициализируем яндекс-карты и узнаём расположение пользователя.
*/
ymaps.ready(function () {
lat = ymaps.geolocation.latitude;
lng = ymaps.geolocation.longitude;
if (pointLat == pointLng) {
init(lat, lng);
init(userLat, userLng);
} else {
init(pointLat, pointLng);
}
points.im = L.marker([lat, lng], {icon: categories.im, title: 'Вы здесь'});
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>');
suggestInit('#addressField');
});
/**
* Инициализируем переменные и подгружаем данные.

View File

@ -9,25 +9,28 @@ var intervalId = null;
*/
function showMeOnTheMap(interval)
{
if (!interval) {
if (showMeTimerOn) {
clearInterval(intervalId);
intervalId = null;
showMeTimerOn = false;
$('#showMeOnTheMap').removeClass('active');
} else {
if (showMeLastTime + 10 >= getTime() && !showMeTimerOn) {
showMeTimerOn = true;
$('#showMeOnTheMap').addClass('active');
intervalId = setInterval('showMeOnTheMap(true)', 15000);
showMeLastTime = getTime();
}
}
showMeLastTime = getTime();
}
// TODO: Продумать ещё раз и переписать
// if (!interval) {
// if (showMeTimerOn) {
// clearInterval(intervalId);
// intervalId = null;
// showMeTimerOn = false;
// $('#showMeOnTheMap').removeClass('active');
// } else {
// if (showMeLastTime + 10 >= getTime() && !showMeTimerOn) {
// showMeTimerOn = true;
// $('#showMeOnTheMap').addClass('active');
// intervalId = setInterval('showMeOnTheMap(true)', 15000);
// showMeLastTime = getTime();
// }
// }
// showMeLastTime = getTime();
// }
navigator.geolocation.getCurrentPosition(function (pos) {
coords = [pos.coords.latitude, pos.coords.longitude];
$.cookie('userLat',pos.coords.latitude);
$.cookie('userLng',pos.coords.longitude);
myMap.removeLayer(points.im);
points.im.setLatLng(coords).addTo(myMap);
myMap.setView(coords, myMap.getZoom());