|
Геолокация в мобильном прилоежнии |
☑ |
0
SitiyDenis
19.09.18
✎
18:00
|
Добрый день,
пробую использовать геопозиционирование на мобильной платформе, работает через раз, а порой вообще не работает, ждет до окончания тайм аута и не находит локацию.
Если открываю 2gis или карты срабатывает мгновенно.
В какую сторону можно копать? Или 1С моб платформа пока не готова для рабочего использования геолокации?
|
|
1
palsergeich
19.09.18
✎
18:05
|
(0) Я когда баловался - у меня работало. Попоробуйте другой релиз платформы. На худолй конец еще и другую версию андроида.
|
|
2
oslokot
19.09.18
✎
18:11
|
(0) Показывайте код
|
|
3
SitiyDenis
19.09.18
✎
18:22
|
Процедура Координаты()
Провайдер = ПолучитьПровайдера();
Если Провайдер = Неопределено Тогда
Сообщить("Не удалось получить местоположение!");
Возврат;
КонецЕсли;
Данные = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(Провайдер.Имя);
Если НЕ ЗначениеЗаполнено(Данные) Тогда
Сообщить("Не удалось получить координаты!");
Возврат;
КонецЕсли;
Объект.ДолготаН = данные["Координаты"].Долгота;
Объект.ШиротаН = данные["Координаты"].Широта;
КонецПроцедуры
Функция ПолучитьПровайдера()
#Если МобильноеПриложениеКлиент Тогда
Провайдер = СредстваГеопозиционирования.ПолучитьПровайдера("network");
Если СредстваГеопозиционирования.ОбновитьМестоположение(Провайдер.Имя,"5") Тогда
Возврат Провайдер;
КонецЕсли;
Провайдер = СредстваГеопозиционирования.ПолучитьПровайдера("gps");
Если СредстваГеопозиционирования.ОбновитьМестоположение(Провайдер.Имя,"3") Тогда
Возврат Провайдер;
КонецЕсли;
Возврат Неопределено;
#КонецЕсли
КонецФункции
|
|
4
oslokot
19.09.18
✎
18:29
|
Лучше делать через встроенный обработчик
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения()
|
|
5
Cyberhawk
19.09.18
✎
18:54
|
Это норма. Но дело может быть и в железе. Даже несмотря на то, что 2Гис сразу мгновенно что-то там определяет, ведь он может из какого-нибудь кэша брать данные, если за минимальный таймаут не получил инфы
|
|