Итоговый пример
Дата публикации: 25.03.2011
Попробуем применить на практике полученные знания и сделаем простой пример для определения положения пользователя используя geo.js.
При загрузке страницы нужно вызвать geo_position_js.init() чтобы определить поддерживается ли какой-то интерфейс геолокации знакомый geo.js. Если поддержка имеется, для пользователя можно создать кнопку «Определить местоположение», по клику на которую произойдет вызов функции lookup_location():
function lookup_location() { geo_position_js.getCurrentPosition(show_map, show_map_error); }
Если пользователь дал согласие на определение месторасположения и устройство в состоянии это сделать, тогда происходит вызов функции show_map() с единственным аргументом loc. Loc — это объект, в свойствах которого содержаться широта, долгота и точность (я в этом примере точность не использую). Остальная часть функции show_map() создает встроенную карту, используя Google Maps API:
function show_map(loc) { $("#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: "You are here (more or less)"})); }
Если geo.js не в состоянии определить месторасположение, будет вызвана функция show_map_error():
function show_map_error() { $("#live-geolocation").html('Unable to determine your location.'); }
Куда дальше
- следующая — Глава 7. Прошлое, настоящее и будущее локальных хранилищ для веб приложений
- предыдущая — Geo.js нам в помощь
- содержание