Доработал определения положения пользователя - отказался от загрузки карты 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/app.js?ver=' . App::getConfig('version'));
self::addScript('/js/jquery.cookie.js'); 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/leaflet-routing-machine.js');
self::addScript('/js/route.js?ver=' . App::getConfig('version')); self::addScript('/js/route.js?ver=' . App::getConfig('version'));
self::addScript('/js/leaflet.markercluster.js'); self::addScript('/js/leaflet.markercluster.js');
self::addScript('/js/fotorama.js');
self::addScript('/js/suggest.js?ver=' . App::getConfig('version')); self::addScript('/js/suggest.js?ver=' . App::getConfig('version'));
self::addScript('/js/navigation.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/style.css?ver=' . App::getConfig('version'));
self::addStyle('/css/leaflet.css'); 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('pointLat', (isset($_GET['lat'])?floatval($_GET['lat']):0));
self::addVar('pointLng', (isset($_GET['lng'])?floatval($_GET['lng']):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(); $og = array();
if (isset($_GET['point']) && $_GET['point'] && is_numeric($_GET['point'])) { if (isset($_GET['point']) && $_GET['point'] && is_numeric($_GET['point'])) {
$id = (int) $_GET['point']; $id = (int) $_GET['point'];

View File

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

View File

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