Вхождение в геозону СтредстваГеопозиционирования

1. UPKA 29.05.23 13:53 Сейчас в теме
Здравствуйте, подскажите, если кто то использовал проверку на вхождение в геозону при разработке МП, как создать геозону и определить вхождение?

По данному инструменту практически не нашел документации (примеров). По синтекс - помощник не совсем понятно.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user-z99999 67 29.05.23 18:21 Сейчас в теме
#Если МобильноеПриложениеКлиент Тогда
Если НЕ СредстваГеопозиционирования.ИспользованиеДанныхГеопозиционированияВключено() Тогда
  ПоказатьПредупреждение(,"Средства геопозиционирования отключены в настройках устройства.", 60);
  Возврат;
КонецЕсли;
        
ПровайдерGPS = СредстваГеопозиционирования.ПолучитьПровайдера("gps");
        
Если ПровайдерGPS = Неопределено Тогда
  ПоказатьПредупреждение(,"Не найден провайдер ГЕОДанных ""gps"".", 60);
  Возврат;
КонецЕсли;
        
Если СредстваГеопозиционирования.ОбновитьМестоположение(ПровайдерGPS.Имя, 60) Тогда
  Местоположение = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ПровайдерGPS.Имя);
  Если НЕ Местоположение = Неопределено Тогда
    Объект.ГЕОДолгота = Местоположение.Координаты.Долгота;
    Объект.ГЕОШирота = Местоположение.Координаты.Широта;
    ЭтаФорма.Модифицированность = Истина;
  КонецЕсли;
Иначе
    ПоказатьПредупреждение(,"Не удалось получить координаты.", 60);
КонецЕсли;
#КонецЕсли
Показать
3. UPKA 29.05.23 18:46 Сейчас в теме
(2)
(2)это пример местоположения, а имею ввиду вхождение в геозону.
Если координаты выходят за границы геозоны.
4. laperuz 46 30.05.23 06:57 Сейчас в теме
(3)С геозонами не работал, но по синтакс-помощнику все довольно просто смотрится.

В обработчике на клиенте(например, при открытии формы) получаете из базы/создаете геозону, включаете ее, подписываетесь на вход/выход из геозоны.

&НаКлиенте
Процедура ВключитьОтслеживаниеПересеченияГраниц()
    МассивГеозон = ПолучитьГеозоныОтслеживания();
    ВключитьОтслеживаниеГеозон(МассивГеозон);
    ОбработчикПересечения = Новый ОписаниеОповещения("ПриПересеченииГраницыГеозоны", ЭтаФорма);
    ПодключитьОбработчикПересеченияГраницОтслеживаемыхГеозон(ОбработчикПересечения);
КонецПроцедуры;

&НаКлиенте
Процедура ПриПересеченииГраницыГеозоны(Геозона, ПоложениеОтносительноГеозоны, ДополнительныеПараметры)
    Если Геозона.Идентификатор = "ГеозонаМосква" Тогда
        Если ПоложениеОтносительноГеозоны = ПоложениеОтносительноГеозоны.Внутри Тогда
            Сообщить("Вы въехали в Москву");
        Иначе
            Сообщить("Вы выехали из Москвы");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
Показать
5. UPKA 30.05.23 09:36 Сейчас в теме
(4)А как создать сами геозоны?
6. laperuz 46 31.05.23 06:12 Сейчас в теме
(5)Ну например создаете справочник "Геозоны" с числовыми реквизитами Высота, Долгота, Радиус и стандартным наименованием, заполняете руками координаты центра геозоны(ну или можно завязать создание на некоторые координаты, получаемые по GPS), неважно.

Далее примерно так:

&НаСервере
Функция ПолучитьГеозоныОтслеживания()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |	Геозона.Ссылка КАК Ссылка,
               |	Геозона.Наименование КАК Наименование,
               |	Геозона.Широта КАК Широта,
               |	Геозона.Долгота КАК Долгота,
               |	Геозона.Радиус КАК Радиус
               |ИЗ
               |	Справочник.Геозона КАК Геозона";  

Выборка = Запрос.Выполнить().Выбрать();

МассивГеозон = Новый Массив;

Пока Выборка.Следующий() Цикл                                     
	КоординатыГеозоны = Новый ГеографическиеКоординаты(Выборка.Широта, Выборка.Долгота);
	Геозона = Новый Геозона(Выборка.Ссылка, Выборка.Наименование, КоординатыГеозоны, Выборка.Радиус);
	
	МассивГеозон.Добавить(Геозона);
КонецЦикла;

Возврат МассивГеозон;
КонецФункции
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)