|
|
|
СредстваГеопозиционирования.ОбновитьМестоположение не срабатывает, всегда возвращает ложь | ☑ | ||
|---|---|---|---|---|
|
0
peps2006
21.06.19
✎
10:42
|
Добрый день всем.
Релиз мобильной платформы 8.3.14.62. Планшет Asus ZenoPad 10, android 7.0 Есть вот такой код: ТекущийПровайдер = СредстваГеопозиционирования.ПолучитьСамогоТочногоПровайдера().Имя; СредстваГеопозиционирования.ОбновитьМестоположение(ТекущийПровайдер, 30); ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер); Переменная ТекущийПровайдер = "gps", все корректно. Какой бы таймаут не стоял в СредстваГеопозиционирования.ОбновитьМестоположение, всегда возвращается ложь и следующая строка кода в переменную ДМ возвращает Неопределено. Причем при таймауте, например в 30 секунд, команда ОбновитьМестоположение может выполняться то все 30 секунд, то 5 секунд, но все равно не возвращает текущее местоположение. При этом сторонние программы, типа GPS Test, показывают координаты отлично. Может есть у кого-то наработки в этом направлении? И еще вопрос при сборке приложения обязательно ли указывать ключ для работы с картами Google, если планируется использовать только средства геопозиционирования? |
|||
|
1
Василий Алибабаевич
21.06.19
✎
11:05
|
(0) Вот так работает
#Если МобильноеПриложениеКлиент Тогда Если НЕ СредстваГеопозиционирования.ИспользованиеДанныхГеопозиционированияВключено() Тогда ПоказатьПредупреждение(,"Средства геопозиционирования отключены в настройках устройства.", 60); Возврат; КонецЕсли; ПровайдерGPS = СредстваГеопозиционирования.ПолучитьПровайдера("gps"); Если ПровайдерGPS = Неопределено Тогда ПоказатьПредупреждение(,"Не найден провайдер ГЕОДанных ""gps"".", 60); Возврат; КонецЕсли; Если СредстваГеопозиционирования.ОбновитьМестоположение(ПровайдерGPS.Имя, 60) Тогда Местоположение = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ПровайдерGPS.Имя); Если НЕ Местоположение = Неопределено Тогда Объект.ГЕОДолгота = Местоположение.Координаты.Долгота; Объект.ГЕОШирота = Местоположение.Координаты.Широта; ЭтаФорма.Модифицированность = Истина; КонецЕсли; Иначе ПоказатьПредупреждение(,"Не удалось получить координаты.", 60); КонецЕсли; #КонецЕсли |
|||
|
2
Василий Алибабаевич
21.06.19
✎
11:10
|
+(1) По второму вопросу.
Средства геопозиционирования никакого отношения к гуглемапсам не имеют. Оно есть аппаратная часть вашего девайса. Вот это вот "ключ для работы с картами Google" нужен если хотите на мапсах отображать свои значки, описания, какие-то дополнительные тэги... Для отображения стандартных гуглевских отметок или маршрутов оно не нужно. |
|||
|
3
Василий Алибабаевич
21.06.19
✎
11:19
|
+(2) Пример отображения маршрута на карте :
#Если МобильноеПриложениеКлиент Тогда Адрес = "https://www.google.com/maps/dir/'49.937,36.423'"; Счетчик = 0; Для Каждого текСтрока ИЗ Объект.Покупатели Цикл К = ПолучитьКоординаты(текСтрока.Контрагент); Если (К.Долгота = 0) ИЛИ (К.Широта = 0) Тогда Сообщить("Покупатель " + РеквизитОбъекта(текСтрока.Контрагент, "Наименование") + " исключен из маршрута. Не заданы координаты"); Продолжить; КонецЕсли; Адрес = Адрес + "/'"+ Формат(Окр(К.Широта, 3), "ЧДЦ=3; ЧРД=.; ЧГ=0") + "," + Формат(Окр(К.Долгота, 3), "ЧДЦ=3; ЧРД=.; ЧГ=0") + "'"; Счетчик = Счетчик + 1; Если Счетчик = 22 Тогда Прервать; КонецЕсли; КонецЦикла; ЗапуститьПриложение(Адрес); #КонецЕсли |
|||
|
4
peps2006
21.06.19
✎
11:53
|
Спасибо за подробный ответ!
Вот это то как раз у меня и возвращает всегда ложь: Если СредстваГеопозиционирования.ОбновитьМестоположение(ПровайдерGPS.Имя, 60) Тогда Не могу понять почему. Какой бы тайм-аут не ставил, спутники видны, смотрю в другой проге. А какой релиз мобильной платформы вы используете где у вас работает? |
|||
|
5
Василий Алибабаевич
21.06.19
✎
11:57
|
(4) 8.3.10.84
|
|||
|
6
Василий Алибабаевич
21.06.19
✎
11:58
|
+(5) На Гэлэкси 4 и Гэлэкси 8
|
|||
|
7
Василий Алибабаевич
21.06.19
✎
12:03
|
Да. Кстати был какой-то прикол с настройками ЖПС на девайсах. Стояла программа-трекер. И когда она работата 1С не могла получить координату. Кстати и аккумулятор разряжался с безбожной скоростью.
Как вылечил уже не помню. |
|||
|
8
peps2006
21.06.19
✎
16:05
|
Если в самом устройстве поставить определение координат только по GPS, то СредстваГеопозиционирования.ОбновитьМестоположение(ПровайдерGPS.Имя, 60) возвращает Истину, но после этого команда СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ПровайдерGPS.Имя) возвращает Неопределено
Ерунда какая-то ... Команды то всего две, куда копать не понятно, перебирать все релизы подряд, вдруг где заработает ... |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |