diff --git a/controllers/IndexController.php b/controllers/IndexController.php index 2a059af..3b2afc2 100644 --- a/controllers/IndexController.php +++ b/controllers/IndexController.php @@ -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']; diff --git a/public/js/map.js b/public/js/map.js index 78ee485..3afd71d 100644 --- a/public/js/map.js +++ b/public/js/map.js @@ -38,24 +38,16 @@ categories.simplepoint = L.icon({ // ----------------------------------------------------------------------------- -/** - * Инициализируем яндекс-карты и узнаём расположение пользователя. - */ -ymaps.ready(function () { - lat = ymaps.geolocation.latitude; - lng = ymaps.geolocation.longitude; +if (pointLat == pointLng) { + init(userLat, userLng); +} else { + init(pointLat, pointLng); +} - if (pointLat == pointLng) { - init(lat, lng); - } else { - init(pointLat, pointLng); - } - - points.im = L.marker([lat, lng], {icon: categories.im, title: 'Вы здесь'}); - points.im.addTo(myMap); - points.im.bindPopup('

Похоже, что вы здесь!

Ваше местоположение - это точка, которую можно добавить в маршрут. При первоначальной загрузке страницы определение координат происходит очень неточно, по вашему адресу в сети интеренет. При желании координаты можно уточнить, нажав соответствующую пиктограмму справа [
].

'); - suggestInit('#addressField'); -}); +points.im = L.marker([userLat, userLng], {icon: categories.im, title: 'Вы здесь'}); +points.im.addTo(myMap); +points.im.bindPopup('

Похоже, что вы здесь!

Ваше местоположение - это точка, которую можно добавить в маршрут. При первоначальной загрузке страницы определение координат происходит очень неточно, по вашему адресу в сети интеренет. При желании координаты можно уточнить, нажав соответствующую пиктограмму справа [
].

'); +suggestInit('#addressField'); /** * Инициализируем переменные и подгружаем данные. diff --git a/public/js/navigation.js b/public/js/navigation.js index 38fb613..0ac0173 100644 --- a/public/js/navigation.js +++ b/public/js/navigation.js @@ -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());