Что такое геолокация сайта
Геопозиция и геолокация: мега-инструмент
Вступление
Сегодня геолокация и геопозиционирование превратились в государство, о котором мы не мечтали около 60 лет назад, в период первых мыслей о создании Интернет-сети.
Исследуйте геолокацию и API бесплатно вместе с сервисом геолокации IPGeolocation.io
Картография превратилась в чудо — из безумно больших листов бумаги в то, что умещается на ладони.
На сегодня, карты используются не только для поиска культурного центра в Париже, но чтобы иметь возможность найти все:
Эволюция во времени
Давайте посмотрим, как началась эволюция геолокации. Путешествие этого явления начинается с давнейших времен.
Экскурс в прошлое
Древние греки триангулировали свое местоположение, используя расположение звезд. Они рассчитывали звезды в качестве своих путеводителей во время путешествий. Использовав такие звезды как Полярис (Северная Звезда) или Сириус, они могли найти себя во время длительных и дальных путешествий.
Перенесемся на много лет назад, где первая практическая радиолокационная система была изобретена сэром Робертом Уоттом в 1935 году.
В 1989 году в США был запущен самый первый спутник GPS для коммерческого использования.
Развитие этой технологии стало быстрым с этого момента. Всего за 10 лет Benefon Inc. стала первой компанией, представившей первый коммерчески доступный мобильный телефон со встроенным GPS.
Это 2019 год и мы прошли долгий путь со времен Бенефона.
Вы можете найти потерянных домашних животных с ошейниками, детей, родителей, которые имеют встроенный GPS в умные устройства.
Сейчас можно найти местоположение вашего любимого гамбургера и его доставку, не вставая из своего дивана.
Вот, как мы используем эту технологию индивидуально в повседневной жизни.
Геолокация используется в гораздо больших масштабах — предприятиями для отслеживания и нацеливания на нужных пользователей, чтобы увеличить продажи и сделать охват нужной аудитории клиентов.
Итак, первый порядок бизнеса и основное правило нашего времени: раскусить этот термин на действительно нужные и требующие определения.
Что такое геолокация?
«Геолокация — это идентификация или оценка реального географического местоположения объекта, такого как радарный источник, мобильный телефон, базовая станция или любой девайс подключенный к Интернету. В своей простейшей форме геолокация включает генерацию набора географических координат и тесно связана с использованием систем позиционирования, но ее полезность повышается благодаря использованию этих координат для определения значимого местоположения, такого как адрес улицы, почтового индекса».
Иначе говоря, геолокация — это Ваш физический сетевой адрес на планете.
IPv4 и IPv6 адреса
IP является аббревиатурой от интернет-протокола. IP-адрес — это уникально идентифицируемая метка для каждого устройства, подключенного к компьютерной сети и имеющая распределения по месту регистрации для континентов (регистраторы). Или, проще говоря, IP — это ваш виртуальный адрес.
Где бы в мире вы ни пользовались Интернетом, Вам будет присвоен IP-адрес.
IP-адреса формируются в собственные диапазоны, которые закреплены региональными интернет-регистраторами для разных провайдеров и владельцев сетей, регулируемые автономной системой (ASN):
American Registry for Internet Numbers (ARIN) — для Северной Америки;
RIPE Network Coordination Centre (RIPE NCC) — для Европы, Ближнего Востока и Центральной Азии;
Asia-Pacific Network Information Centre (APNIC) — для Азии и Тихоокеанского региона;
Latin American and Caribbean Network Information Centre (LACNIC) — для Латинской Америки и Карибского региона;
African Network Information Centre (AfriNIC) — для Африки и региона Индийского океана.
При работе с IP-адресами Вы увидите два типа IP-адресов:
0.0.0.0 — это адрес IPv4,
а 2001:db8:85a3::8a2e:370:7334 — пример адреса IPv6.
API — это сокращение от интерфейса прикладного программирования.
Это набор функций, который позволяет приложениям общаться друг с другом. Вы видели сайты, которые позволяют Вам зарегистрироваться через Facebook или Twitter (или любую внешнюю платформу). Эти отношения между этим сайтом и Facebook создаются с помощью API.
Итак, теперь, когда мы знаем, что такое геолокация, IP и API, я представляю Вам IP Geolocation API.
API геолокации на деле
IP Geolocation API — это небольшой фрагмент кода (API), который помогает определить приблизительное физическое местоположение пользователя с помощью его виртуального адреса (IP). IP Geolocation — это метод определения приблизительного физического местоположения подключенного к Интернету устройства через адрес, а IP Geolocation API — это доступность этого метода в виде API.
Варианты использования IP Geolocation (краткий обзор):
Если Вы маркетолог, то можете использовать информацию из этого API и направить свои маркетинговые усилия в правильном и корректном направлении, дабы получить достойный результат при взаимодействии.
Интернет-продавцы могут использовать IP-геолокацию для отслеживания любого потенциального мошенничества с кредитными картами. Это делается путем сопоставления IP-адреса покупателя с адресом доставки/выставления счета, который он ввел.
Например, если введенный адрес доставки находится в Индии, но IP-адрес указывает нам местонахождение посетителя в Австралии, он может быть помечен как мошенничество.
Правоохранительные органы используют геолокацию для отслеживания преступной деятельности в Интернете и предотвращения будущих правонарушений.
Геозоны — это «ограждение» вокруг контента, который разрешен для показа в определенных регионах. Возможно, Вы сталкивались с сайтами, на которых написано: «Этот контент заблокирован для просмотра в Вашей стране».
Да, это неприятно и создает трудности при доступе к определенным сервисам.
Например, ВКонтакте заблокирован в Украине, последние видео Джимми Киммела заблокированы в Юго-Восточной Азии, а Pokemon Go изначально разрешено воспроизводить в США (но оно было выпущено более чем в 60 странах).
Многие крупные продавцы электронной коммерции успешно используют эту технологию и получают действительно потрясающие результаты.
Мы составили список некоторых вещей, чтобы показать, как они отлично справляются с маркетингом с помощью IP-геолокации.
Интегрируя средства геолокационных сервисов и комбинируя их со всевозможными SDK, плагинами, создается ситуация когда большой приоритет наблюдается именно к геолокации и для нее свойственно получать большее количество параметров.
Функционал и возможности предоставления услуги в сервисах просто потрясает, для IP-адреса Вы можете получить: хостнейм, имя и код континента, имя и код страны в двух форматах, флаг страны, столицу, названия страны, область, район, город, почтовый индекс, координаты (долгота и широта), телефонный код страны, TLD, список языков страны, тип соединения, имя организации и провайдера, валюту и ее символ, часовую зону и текущее время — этот багаж данных дает грандиозную возможность для внедрения подобной информации об IP-адресах Ваших же клиентов. Это большое достояние для действительно нуждающихся в наибольшей детализации пользовательских данных проектов и сервисов, получая спектр и сводки в таком масштабе.
Такое количество предоставляемой информации для адреса в сети поможет усовершенствовать аналитические, статистические и мониторинговые данные о клиенте, дабы улучшить таргетинг своего продукта или бизнеса.
Если Вы хотите получить намного большее и создать собственный пакет метаданных при использовании гео-сервисов, это правильный вариант чтобы начать применять аналитическую статистику и анализ, а так-же просто комбинировать вспомогательные инструменты для удобств использования, определения и вывода информации на уровне геолокации.
Изучайте геолокацию и методы внедрения бесплатно вместе с сервисом геолокации IPGeolocation.io
Искренне желаем пользоваться действительно прекрасным и полезным с умом, получая прибыль и удовольствие от своей деятельности!
Геолокация
Геолокация позволяет определять географическое местоположение посетителей веб-сайта. И это не означает просто страну или даже город, в котором находится посетитель. Геолокация может сузить информацию о местоположении человека к городскому кварталу или даже определить его точные координаты, если он зашел на страницу со смартфона.
Все основные браузеры предоставляют хороший уровень поддержки геолокации:
Браузер | IE | Firefox | Chrome | Safari | Opera | Safari iOS | Android |
Минимальная версия | 9 | 3.5 | 5 | 5 | 10.6 | 3.2 | 2.1 |
Большинство новых возможностей JavaScript, которые мы рассмотрели ранее, были частью первоначальной спецификации HTML5, а потом были отделены, когда спецификацию передали в ведение организации W3C. Но геолокация никогда не была частью HTML5, а просто полностью сформировалась приблизительно в то же самое время. Но почти все рассматривают эту возможность вместе с возможностями HTML5, как часть одной большой волны будущих технологий.
Принцип работы геолокации
Возможность геолокации вызывает довольно много вопросов у людей, которых обычно нельзя назвать параноиками. Например, каким образом может какое-то программное обеспечение знать, что я не болею, как я сказал своему начальнику, а смотрю футбол в кафе? В нем что, есть какой-то скрытый код, который отслеживает все мои действия? Интересно, что это за фургон там на улице и те люди, которые прикидываются, будто бы они меняют колесо?
К счастью, возможность геолокации не из разряда страшилок о слежке. Это потому, что даже если браузер может вычислить ваше местонахождение, он не сообщит его веб-сайту без вашего явного на то разрешения:
Веб-страница хочет получить данные о местоположении посетителя. Посетитель может разрешить предоставлять эти данные или же не предоставлять их. Такое поведение браузера Chrome не является собственной инициативой его разработчиков, а официальным правилом стандарта геолокации, требующим, чтобы каждый веб-сайт, пытающийся получить данные о местоположении посетителя, получил для этого его разрешение.
В случае настольного компьютера с фиксированным (т.е. небеспроводным) подключением, метод простой, но дает не очень точные результаты. Когда кто-то подключается к интернету, данные с его компьютера или локальной сети направляются (через кабель, выделенную линию или коммутируемое телефонное соединение) на мощное сетевое аппаратное устройство, которое, в свою очередь, направляет их в интернет. Это аппаратное устройство имеет однозначный IP-адрес, т.е. числовой код, который идентифицирует это устройство для других участников сети. Это устройство также имеет физический почтовый адрес.
Поставщик местоположения использует эти два типа информации для определения географического местоположения посетителя веб-страницы. Сначала вычисляется IP-адрес устройства, через которое осуществляется подключение, а затем определяется его физический адрес. Естественно, такой непрямой подход позволяет определить точное местоположение не пользователя, а только его интернет-провайдера.
Тем не менее часто даже такие неточные результаты являются полезными. Например, если вы используете средство геолокации, чтобы найти магазин, продающий пиццу на вынос, вы можете быстро перейти в район, который вас действительно интересует — вблизи вашего дома — даже если вы находитесь не совсем рядом.
Метод определения местоположения посредством IP-адреса является самым неточным способом геолокации. Если имеется лучший источник данных, поставщик местоположения будет использовать этот источник.
Если посетитель зашел на страницу с нетбука или смартфона по беспроводному подключению, поставщик местоположения использует ближайшие точки беспроводного доступа. В идеальном случае поставщик местоположения выбирает данные из огромной базы данных, чтобы определить точное местонахождение этих точек доступа, а потом использует полученную информацию, чтобы определить местоположение посетителя методом триангуляции.
А в случае подключения с мобильного телефона поставщик местоположения применяет подобный метод триангуляции, но использует сигналы от разных антенн мобильной связи. Эта быстрая, сравнительно эффективная процедура обычно позволяет определить местоположение посетителя с точностью до 1 км.
Из всего этого можно сделать следующий вывод: независимо от способа подключения к интернету, даже если посетитель веб-сайта сидит за настольным компьютером, возможность геолокации позволяет определить его местонахождение с большей или меньшей точностью. А если он выходит в интернет с мобильного телефона или с устройства, оснащенного аппаратным обеспечением GPS, его местоположение может быть определено с точностью скорее большей, чем меньшей.
В каких сферах применять геолокацию?
Ответив на большой вопрос, как работает геолокация, нам нужно разобраться еще с одним: какая нам от нее польза?
Здесь ключевым аспектом, который нужно понимать, является то, что функциональность геолокации позволяет определить приблизительные географические координаты посетителя страницы. И это все. Веб-разработчик должен объединить эту простую, но важную информацию с более подробными данными о местоположении посетителя. Эти данные можно получить от веб-сервера (обычно из огромной серверной базы данных) или какой-либо географической веб-службы (скажем, Google Maps).
Например, для большого предприятия, имеющего филиалы в нескольких точках, может потребоваться сравнить местоположение посетителя веб-страницы с местоположением своих разных филиалов, чтобы определить ближайший к посетителю.
А разработчик какого-либо средства социальных сетей может создать диаграмму расположения группы пользователей, показывающую им расстояние между ними. Или же данные о местонахождении можно использовать для предоставления посетителям веб-сайта какой-либо услуги, например нахождения ближайшего работающего круглосуточно магазина или кафе. В любом случае, информация о местоположении посетителя веб-страницы важна только в комбинации с другими географическими данными.
Хотя картографические и географические услуги, предоставляемые другими компаниями, довольно обширны, мы рассмотрим одну из них — Google Maps — чуть позже.
Определение координат посетителя
Возможность геолокации предельно проста. Она состоит из трех методов объекта : getCurrentPosition(), watchPosition() и clearWatch().
Объект navigator — это сравнительно незначительная часть JavaScript. Его несколько свойств предоставляют информацию о текущем браузере и его возможностях. Наиболее полезным из них является свойство navigator.userAgent, которое предоставляет информационную строку, содержащую подробные данные о браузере, его версии, а также операционной системы, в которой он выполняется.
Для получения местоположения посетителя вызывается метод getCurrentPosition(). Но следует понимать, что процесс определения местоположения занимает определенное время, в течение которого никакой уважающий себя браузер не остановит всю деятельность на странице, пока ожидает эти данные. Поэтому метод getCurrentPosition() исполняется асинхронно, т.е. после его запуска продолжается выполнение следующего за ним кода. Когда определение местоположения завершится, для обработки результатов активируется другой фрагмент кода.
Далее приведен пример вызова этого метода:
При исполнении этот код вызывает метод getCurrentPosition() и передает ему функцию. Когда браузер завершит процесс определения местоположения, он активирует эту функцию, которая выводит окно сообщения:
Не забывайте: использование геолокации допустимо только в том случае, если браузер поддерживает эту возможность и посетитель разрешит ее применение. Также разумно протестировать страницу, применяющую эту возможность, прежде чем размещать ее на веб-сервере для практического применения. В противном случае могут возникнуть проблемы (например, не будет функционировать обработка ошибок геолокации), и некоторые браузеры вообще не смогут определить местоположение пользователя.
Определение точности предоставленного местоположения
При успешном выполнении метода getCurrentPosition() код получает объект position, который имеет два свойства: timestamp (содержит время выполнения геолокации) и coords (содержит географические координаты).
Но свойство coords в свою очередь является подобъектом объекта position и кроме свойств latitude и longitude, определяющих географические координаты посетителя, имеет еще несколько других свойств, предоставляющих дополнительную информацию о местоположении. Это такие свойства, как altitude (высота над уровнем моря), heading (направление движения) и speed (скорость). Но на данный момент эти свойства не поддерживаются ни одним браузером.
Более интересным является свойство accuracy, которое указывает точность определенного местоположения в метрах. (Это означает, что по мере понижения точности данных местоположения значение свойства accuracy возрастает, что может несколько сбивать с толку.) Например, значение свойства accuracy, равное 2135 метрам, означает, что местоположение пользователя было определено в пределах этого расстояния.
Свойство accuracy полезно для определения качества результатов геолокации. Например, если значение свойства accuracy измеряется десятками километров, данные геолокации вряд ли имеют какую-либо практическую ценность:
В таком случае, возможно, разумно известить пользователя о неопределенных данных его местоположения и/или предложить ему ввести правильную информацию самому.
Обработка ошибок
Функциональность геолокации не срабатывает, если посетитель отказывается дать разрешение на ее применение. В таком случае функция завершения в нашем примере не вызывается и страница не будет знать, то ли браузер все еще пытается определить местоположение или же произошла ошибка в исполнении кода.
Для решения этой проблемы при вызове метода getCurrentPosition() ему нужно передавать не одну функцию, а две. Первая функция, как мы уже рассмотрели, вызывается в случае успешного завершения процесса геолокации. В противном же случае вызывается вторая функция. Далее приведен пример с использованием этих двух функций:
При вызове функции ошибки геолокации браузер передает ей объект ошибки, который имеет два свойства: code (содержит числовой код, указывающий один из четырех типов ошибки) и message (содержит короткое извещение о проблеме). Обычно извещение предназначено для тестирования, а код ошибки используется кодом функции для определения, каким образом решать данную проблему.
Модифицированная функция ошибки, которая проверяет все возможные значения кода ошибки, выглядит так:
Установка параметров геолокации
Итак, мы рассмотрели, как вызывать метод getCurrentPosition() с двумя параметрами: функцией для обработки успеха геолокации и функцией для обработки ошибки при попытке ее выполнения. Но этому методу можно передавать еще один параметр, коим является объект, устанавливающий определенные параметры геолокации.
В настоящее время можно установить три параметра, каждый из которых соответствует отдельному свойству объекта параметров геолокации. В следующем примере устанавливается один параметр enableHighAccuracy:
А в этом примере устанавливаются все три параметра:
В обоих этих примерах параметры геолокации устанавливаются посредством литералов объектов JavaScript.
Что же означают эти свойства? Свойство enableHighAccuracy задействует высокоточное определение местоположения, используя систему GPS (если устройство поддерживает эту возможность и посетитель разрешил ее использование). Не устанавливайте этот параметр, если только вам не требуется получить точные координаты, т.к. ее применение сильно повышает расход заряда аккумулятора устройства браузера. По умолчанию свойству enableHighAccuracy присваивается значение false.
Свойство timeout определяет период времени, в течение которого страница будет ожидать получения данных геолокации, прежде чем считать попытку неудачной.
Значения timeout устанавливается в миллисекундах, т.е. 10 000 мс означает максимальное ожидание 10 с. Отсчет начинается после того, как пользователь согласится предоставить данные геолокации. По умолчанию свойству timeout присваивается 0, означающий, что страница будет ожидать результаты геолокации бесконечно, не активируя ошибку тайм-аута.
Свойство maximumAge позволяет кэширование данных о местоположении. Например, значение maximumAge, равное 60 000 мс, разрешает пользоваться данными геолокации, полученными минуту назад. Это позволяет сэкономить время и вычислительные ресурсы, а также означает, что результаты геолокации будут менее точными, если посетитель перемещается. По умолчанию свойству maximumAge присваивается 0, означающий, что кэшированные результаты геолокации никогда не используются. Свойству можно также присвоить специальное значение infinity, в этом случае будут использоваться кэшированные данные геолокации любой давности.
Отображение карты
Определение географических координат местоположения посетителя веб-сайта — конечно же, интересный трюк. Но он быстро утрачивает свою привлекательность, если мы не найдем этой информации какое-либо полезное применение. За этим дело не станет, т.к. в интернете имеются целые россыпи данных географического местоположения. (Часто проблемой является преобразование этой информации в формат, полезный для веб-приложения.)
Кроме того, существует несколько картографических сервисов, неоспоримым лидером которых является Google Maps. Надежные оценки обращений к этой службе дают основания полагать, что Google Maps является наиболее используемым веб-приложением для любых целей.
Используя Google Maps, можно создать карту любого размера любой части мира. Можно управлять взаимодействием посетителей с этой картой, генерировать маршруты для проезда из одной точки в другую и, что наиболее полезно, накладывать на эту карту свою информацию.
Служба Google Maps предоставляет свои услуги на бесплатной основе (даже для коммерческих сайтов) при условии бесплатного доступа к сайту. (Для платных сайтов Google предоставляет платный картографический сервис.) В настоящее время Google Maps не вставляет свою рекламу на сайты, пользующиеся ее услугами, но лицензионные условия явно оговаривают право на это в будущем.
На рисунке ниже показана модифицированная версия страницы геолокации. Здесь полученные географические координаты пользователя служат для отображения его местоположения на карте:
Создание такой страницы не представляет никаких сложностей. Первым делом нам нужна ссылка на сценарии интерфейса API Google Maps. Эта ссылка размещается перед всеми блоками сценариев, которые используют функциональность картографии:
HTML5 Геолокация API
API геолокации HTML используется для определения местоположения пользователя.
Найдите положение пользователя
API геолокации HTML используется для получения географического положения пользователя.
Поскольку это может поставить под угрозу конфиденциальность, позиция недоступна, если пользователь не одобрит ее.
Примечание: Геолокация наиболее точна для устройств с GPS, таких как смартфон.
Поддержка браузеров
Цифры в таблице указывают первую версию браузера, которая полностью поддерживает геолокацию.
Примечание: Начиная с Chrome 50, API геолокации будет работать только в безопасных контекстах, таких как HTTPS. Если ваш сайт размещен на незащищенном источнике (например, HTTP), запросы на получение местоположения пользователей больше не будут работать.
Использование геолокации HTML
Метод getCurrentPosition() используется для возврата позиции пользователя.
Приведенный ниже пример возвращает широту и долготу положения пользователя:
Пример
Обработка ошибок и отклонений
Второй параметр системы, метод getCurrentPosition() используется для обработки ошибок. Он указывает функцию для запуска, если ей не удается получить местоположение пользователя:
Пример
Отображение результата на карте
Чтобы отобразить результат на карте, вам нужен доступ к картографическому сервису, например Google Maps.
В приведенном ниже примере возвращенные широта и долгота используются для отображения местоположения на карте Google (с использованием статического изображения):
Пример
function showPosition(position) <
var latlon = position.coords.latitude + «,» + position.coords.longitude;
Информация о местоположении
На этой странице показано, как отобразить положение пользователя на карте.
Геолокация также очень полезна для получения специфической информации о местоположении, например:
Метод getCurrentPosition() возвращает объект при успешном выполнении. Свойства широта, долгота и точность всегда возвращаются. Остальные свойства возвращаются, если они доступны:
Свойство | Возврат |
---|---|
coords.latitude | Широта в виде десятичного числа (всегда возвращается) |
coords.longitude | Долгота в виде десятичного числа (всегда возвращается) |
coords.accuracy | Точность положения (всегда возвращается) |
coords.altitude | Высота в метрах над средним уровнем моря (возвращается, если имеется) |
coords.altitudeAccuracy | Точность определения высоты положения (возвращается, если имеется) |
coords.heading | Курс в градусах по часовой стрелке от Севера (возвращается, если имеется) |
coords.speed | Скорость в метрах в секунду (возвращается, если имеется) |
timestamp | Дата/Время ответа (возвращается, если имеется) |
Объект геолокации также имеет другие интересные методы: