Определение местоположения (GPS координат) мобильного устройства в web-клиенте

Обработки - Универсальные обработки

От руководства поступила задача оснастить планшетами транспорт, чтобы на планшеты приходили задания из 1С, а само руководство могло видеть в своём кабинете, где данный транспорт находится в данный момент. Данная разработка это всего лишь наработка по получению координат устройства, на котором запущен тонкий клиент в браузере мобильного устройства.

Итак, требуется получить GPS координаты планшета, причем именно в web-клиенте, т.к. параллельно оперативно должны приходить задания.

Современные браузеры (за исключением IE) умеют определять местоположение, причем не только на смартфонах и мобильных устройствах но и с пониженной точностью на ПК. Получить их можно через Javascript на HTML страничке.

Для получения будем использовать Поле HTML документа на управляемой форме, при создании на сервере формируем следующую HTML страницу:

 

 &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ПовторноеСрабатывание = Ложь;
    
    Координаты = "<html>
                |  <head>
                |    <meta http-equiv=""X-UA-Compatible"" content=""IE=9"" />    
                |  </head>
                |  <body>
                |        <button id=""interactionButton"" style=""display: none"">Кнопка взаимодействия</button>
                |  </body>
                |<script type=""text/javascript"">
                |    var interactionVariable = null;
                |    document.body.CurrentPosition = function(FormLink)
                |    {
                |  navigator.geolocation.getCurrentPosition(showPosition); // Запрашиваем местоположение, и в случае успеха вызываем функцию showPosition
                |  function showPosition(position) {
                |    /* Выводим координаты */
                |    interactionVariable = ""https://www.google.com/maps/?q="" + position.coords.latitude + "", "" + position.coords.longitude + """";
                |    interactionButton.click();
                |  }
                |      return 0;
                |    }
                |</script>
                |</html>";

КонецПроцедуры

При событии поля HTML документа "ДокументСформирован" вызываем функцию из Javascript CurrentPosition, котрая вернет нам координаты.

Проверял в браузере Mozilla Firefox на ПК, погрешность очень большая, т.к. на ПК определение местоположения идет по IP адресу.

Для проверки на Android смартфоне использовался UC Browser, в котором была открыта демонстрационная версия  "Управляемого приложения"для "1С:Предприятия" версии 8.3, местоположение показал с точностью до 20 метров.

 

Для разработки были использованы следующие публикации:

Javascript и 1С. Кросс-платформенное взаимодействие

Управляемые формы: Поле HTML Документа и веб-клиент

 

Скачать файлы

Наименование Файл Версия Размер
Определение местоположения (GPS координат) мобильного устройства в web-клиенте:
.epf 7,44Kb
31.05.18
1
.epf 7,44Kb 1 Скачать

См. также

Комментарии
1. bulpi bulpi (bulpi) 128 02.06.18 11:01 Сейчас в теме
Однозначно плюсую, но я не понял. Ну определил ты координаты на клиенте, дальше то что ? Задача то была "само руководство могло видеть в своём кабинете, где данный транспорт находится в данный момент" . После получения координат их надо передать на сервер. А как это сделать по запросу с сервера ? Никак, ИМХО.
2. belchonokh 15 04.06.18 07:07 Сейчас в теме
(1) Координаты можно получать и отправлять на сервер, например, писать в регистр сведений, по таймеру через обработчик ожидания каждые 10 минут, можно чаще, в итоге руководству можно отображать как срез последних на карте, так и историю, например, построить маршрут. Поскольку руководство работает в толстом клиенте можно использовать уже готовые наработки для отображения карт, например, Работа с картами 1С 3 в 1: Яндекс, Google , 2ГИС
Оставьте свое сообщение