Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

// от службы Google Мар для этого местонахождения

var url = " http://maps.google.com/maps/api/staticmap " +

"?center=" + latitude + + longitude +

"&size=640x640&sensor=t rue";

// Установить масштаб карты, используя грубое приближение

var zoomlevel=20; // Для начала установить самый крупный масштаб

if (accuracy > 80) // Уменьшить масштаб для низкой точности

zoomlevel -= Math.round(Math.log(accuracy/50)/Math.LN2);

url += "&zoom=" + zoomlevel; // Добавить масштаб в URL

// Отобразить карту в объекте изображения. Спасибо, Google!

image.src = url;

}

}

Прикладной интерфейс Geolocation обладает несколькими особенностями, которые не были продемонстрированы в примере 22.1:

• В дополнение к первому аргументу с функцией обратного вызова методы getCurrentPosition и watchPosition принимают вторую необязательную функцию, которая будет вызвана в случае неудачного выполнения запроса.

• Помимо функций обработчиков успешного и неудачного выполнения запроса эти два метода принимают в третьем необязательном аргументе объект с параметрами. Свойства этого объекта определяют: желательна ли высокая точность определения местонахождения, насколько «устаревшей» может быть информация о местонахождении и предельное время ожидания определения местонахождения.

• Объект, который передается обработчику в случае успешного выполнения запроса, также включает время и может (на некоторых устройствах) содержать дополнительную информацию, такую как высота над уровнем моря, скорость и направление перемещения.

Эти дополнительные возможности демонстрируются в примере 22.2.

Пример 22.2. Демонстрация всех возможностей определения местонахождения

// Асинхронно определяет местонахождение и отображает его в указанном элементе,

function whereami(elt) {

// Этот объект передается методу getCurrentPosition в 3 аргументе

var options = {

// Чтобы получить координаты с высокой точностью (например, с устройства GPS),

// присвойте этому свойству значение true. Отметьте, однако, что это может

// увеличить расход энергии в аккумуляторах.

enableHighAccuracy: false, // Приблизительно: по умолчанию

// Определите свое значение, если допустимо брать координаты из кэша.

// По умолчанию имеет значение 0, что обеспечивает получение самой

// свежей информации.

maximumAge: 300000, // Пригодна информация, полученная в течение последних 5 минут

// Предельное время ожидания выполнения запроса.

// По умолчанию имеет значение Infinity, что соответствует бесконечному

// времени ожидания выполнения запроса вызовом метода getCurrentPosition

timeout: 15000 // Ждать не более 15 секунд

};

if (navigator.geolocation) // Запросить координаты, если возможно

navigator.geolocation.getCurrentPosition(success, error, options):

else

  • Читать дальше
  • 1
  • ...
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: