Описание
В GEO.RITM есть возможность отображения приблизительного местоположения объекта по сигналу GSM (LBS). При регистрации в сети GSM прибор получает информацию о базовой станции GSM и передаёт её в GEO.RITM. GEO.RITM может обратиться к Яндекс за получением координат базовой станции - таким образом на карте можно определить примерное местоположение объекта. Данный функционал работает начиная с версии GEO.RITM 2.36.1. Актуально только для приборов серии Voyager xN: Voyager 2N, Voyager 2N light, Voyager 3N, Voyager 4N, Voyager 6N. Определение по LBS можно использовать в случаях отсутствия сигнала GPS/ГЛОНАСС: нахождения объекта в крытых помещениях, подземных парковках, блокировки сигнала GPS.
Получение ключа от Яндекс
- Пройдите по ссылке https://yandex.ru/dev/locator/keys/get/ ;
- Нажмите кнопку “Авторизоваться на Яндексе”;
- Ознакомьтесь с лицензионным соглашением и примите его;
4.1.1. Сервисы могут использоваться Пользователем только в рамках сайтов или приложений, доступных для бесплатного открытого использования неограниченным кругом лиц. Сервисы не могут использоваться в проектах, требующих оплаты, или иным образом ограничивающих доступ к ним третьих лиц.
Для обеспечения бесплатного доступа необходимо на странице входа добавить кнопку "Демо" для отображения местоположения демонстрационного объекта.
- В регистрационной форме укажите домен вашей инсталляции GEO.RITM.
Настройка skin.json
Отредактируйте /opt/payara41/glassfish/domains/domain1/applications/georitm-client-2.45.1/config/skin.json на вашей ВМ GEO.RITM.
Путь к файлу может отличаться в зависимости от вашей версии Payara и GEO.RITM.
Добавьте пару ключ - значение:
"demo": { "login": "Demo", "password": "12345678" }
Пример skin.json:
Перед сохранением рекомендуем проверить корректность содержимое файла с помощью online сервисов по проверке JSON, например jsonlint.
Настройка rrconf
- Авторизуйтесь в интерфейсе Payara - в браузере введите адрес вашей ВМ, порт 4848;
Например https://192.168.1.15:4848 где 192.168.1.15 - адрес вашей ВМ GEO.RITM.
Имя пользователя и пароль по умолчанию
admin
masterkey
- Введите имя пользователя и пароль;
- Перейдите на страницу настроек Payara ➜ Resources ➜ JNDI ➜ Custom Resources ➜ rrconf;
- Измените настройки
Параметр | Значение |
---|---|
ru.ritm.yandex.geolocation.api.key | Ключ Яндекс Локатор |
- Нажмите
- Перейдите на страницу "Server", нажмите
- После перезагрузки обновите главную страницу - должна появиться кнопка "Демо".
Проверка
Ключ Яндекса включается через 15 минут после создания, перед проверкой подождите 30 минут. Если после ожидания при нажатии на Показать LBS в выноске объекта возникает сообщение "Не удалось загрузить данные о положении LBS", а в журнале Payara появляется запись,
[2025-08-20T10:08:24.964+0300] [Payara 4.1] [SEVERE] [] [YandexLbsBeanRemote] [tid: _ThreadID=249 _ThreadName=http-thread-pool::http-listener-1(222)] [timeMillis: 1755673704964] [levelValue: 1000] [[ Yandex Geolocation - Error: ex = java.io.IOException: Server returned HTTP response code: 403 for URL: http://api.lbs.yandex.net/geolocation requestData = json={"common": {"version": 1.0,"api_key": "ВАШКЛЮЧ"},"gsm_cells": [{"countrycode": 250,"operatorid": 2,"cellid": 37115,"lac": 4002,"signal_strength": -80,"age": 1000}]} resultData = ]]
то скорее всего Яндекс блокирует работу вашего ключа.
Проверить работу вашего ключа с помощью утилиты CURL.
Авторизуйтесь в Linux ВМ GEO.RITM.
Имя пользователя и пароль по умолчанию
root
password или masterkey
Вместо ВАШКЛЮЧ - укажите ключ Яндекс и выполните
curl -H "Content-Type: application/json" -X POST "http://api.lbs.yandex.net/geolocation" -d "json={\"common\":{\"version\":1.0,\"api_key\":\"ВАШКЛЮЧ\"},\"gsm_cells\":[{\"countrycode\":250,\"operatorid\":2,\"cellid\":11616,\"lac\":7141,\"signal_strength\":-80,\"age\":1000}]}"
Если ключ корректный, то ответ будет:
{ "position": { "latitude":54.24971389770508, "longitude":37.32057952880859, "altitude":0.0, "precision":665.3004760742188, "altitude_precision":30.0, "type":"gsm" } }
Если ключ не верный, то ответ будет:
{ "error": { "code":8, "message":"invalid api_key" } }
В таком случае рекомендуем обратиться в поддержку Яндекс. Пример письма:
Здравствуйте, поддержка API карт Яндекс. При использовании LBS получаем ошибку 403 на ключе ВАШКЛЮЧ на сервере https://moichop.ru. [2025-09-30T10:15:42.965+0300] [Payara 4.1] [SEVERE] [] [YandexLbsBeanRemote] [tid: _ThreadID=188 _ThreadName=http-thread-pool::http-listener-1(161)] [timeMillis: 1759216542965] [levelValue: 1000] [[ Yandex Geolocation - Error: ex = java.io.IOException: Server returned HTTP response code: 403 for URL: http://api.lbs.yandex.net/geolocation requestData = json={"common": {"version": 1.0,"api_key": "ВАШКЛЮЧ"},"gsm_cells": [{"countrycode": 250,"operatorid": 99,"cellid": 61871,"lac": 42332,"signal_strength": -80,"age": 1000}]} resultData = ]] и { "error": { "code":8, "message":"invalid api_key" } } Доступ на сайт по кнопке ДЕМО открыт для всех. В чём причина блокировки и как исправить?