HTML5 geolocation

Анастасия

HTML5 geolocation

В html5 появилась возможность запросить у пользователя его местоположение. Сайт может получить доступ к этой информации только, если пользователь разрешит браузеру передать свое местоположение.
Если требуется узнать, где примерно находится пользователь, например из какого он города для статистики посещаемости, то лучше пользоваться базами ip-адресов, например http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz.
В общем в html5 появилась Geolocation API, которую IE не поддерживает, поэтому приходится пользоваться GoogleGears. Но еще лучше использовать библиотеку http://code.google.com/p/geo-location-javascript/, которая объединает в одном интерфейсе Geolocation API, Gears API, и разные платформенные api конкретных моделей мобильных устройств.
Пример кода. В head надо подключить скрипты, которые скачиваются тут: gears_init.js, geo.js.

  <script src="gears_init.js"></script>
  <script src="geo.js"></script>
  //если как-нибудь можно определить местоположение
  if (geo_position_js.init()) { 
    //спросить разрешение у пользователя
    geo_position_js.getCurrentPosition(geo_success, geo_error);
  }

  //определили
  function geo_success(loc) {
    alert("Широта " + loc.coords.latitude +", долгота " + loc.coords.longitude);

    //показать на карте Google Map
    $("#geo-wrapper").css({'width':'320px','height':'350px'});
    var map = new GMap2(document.getElementById("geo-wrapper"));
    var center = new GLatLng(loc.coords.latitude, loc.coords.longitude);
    map.setCenter(center, 14);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.addOverlay(new GMarker(center, {draggable: false, title: "Вы где-то рядом"}));

  }
//не определили function geo_error() { alert("не знаю, где вы!"); }

Похожие записи

17:52:57 12.03.2011
noname
прикольно :) спасибо
12:08:55 29.07.2012
Syabrowka
о практическом использовании
Это всё безумно здорово, но на практике бывает нужно определить, находится ли посетитель, к примеру, в офисе или дома. Оба раза это конкретное место с точностью до десяти-двадцати метров. Как такое будет определяться? Как такие местоположения записывать?

Вы можете оставить
комментарий



    
© 2002-2016 Креограф. Все права защищены законом РФ
 Русский /  English