Вхождение в геозону СтредстваГеопозиционирования
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
#Если МобильноеПриложениеКлиент Тогда
Если НЕ СредстваГеопозиционирования.ИспользованиеДанныхГеопозиционированияВключено() Тогда
ПоказатьПредупреждение(,"Средства геопозиционирования отключены в настройках устройства.", 60);
Возврат;
КонецЕсли;
ПровайдерGPS = СредстваГеопозиционирования.ПолучитьПровайдера("gps");
Если ПровайдерGPS = Неопределено Тогда
ПоказатьПредупреждение(,"Не найден провайдер ГЕОДанных ""gps"".", 60);
Возврат;
КонецЕсли;
Если СредстваГеопозиционирования.ОбновитьМестоположение(ПровайдерGPS.Имя, 60) Тогда
Местоположение = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ПровайдерGPS.Имя);
Если НЕ Местоположение = Неопределено Тогда
Объект.ГЕОДолгота = Местоположение.Координаты.Долгота;
Объект.ГЕОШирота = Местоположение.Координаты.Широта;
ЭтаФорма.Модифицированность = Истина;
КонецЕсли;
Иначе
ПоказатьПредупреждение(,"Не удалось получить координаты.", 60);
КонецЕсли;
#КонецЕсли
Показать
(3)С геозонами не работал, но по синтакс-помощнику все довольно просто смотрится.
В обработчике на клиенте(например, при открытии формы) получаете из базы/создаете геозону, включаете ее, подписываетесь на вход/выход из геозоны.
В обработчике на клиенте(например, при открытии формы) получаете из базы/создаете геозону, включаете ее, подписываетесь на вход/выход из геозоны.
&НаКлиенте
Процедура ВключитьОтслеживаниеПересеченияГраниц()
МассивГеозон = ПолучитьГеозоныОтслеживания();
ВключитьОтслеживаниеГеозон(МассивГеозон);
ОбработчикПересечения = Новый ОписаниеОповещения("ПриПересеченииГраницыГеозоны", ЭтаФорма);
ПодключитьОбработчикПересеченияГраницОтслеживаемыхГеозон(ОбработчикПересечения);
КонецПроцедуры;
&НаКлиенте
Процедура ПриПересеченииГраницыГеозоны(Геозона, ПоложениеОтносительноГеозоны, ДополнительныеПараметры)
Если Геозона.Идентификатор = "ГеозонаМосква" Тогда
Если ПоложениеОтносительноГеозоны = ПоложениеОтносительноГеозоны.Внутри Тогда
Сообщить("Вы въехали в Москву");
Иначе
Сообщить("Вы выехали из Москвы");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
(5)Ну например создаете справочник "Геозоны" с числовыми реквизитами Высота, Долгота, Радиус и стандартным наименованием, заполняете руками координаты центра геозоны(ну или можно завязать создание на некоторые координаты, получаемые по GPS), неважно.
Далее примерно так:
Далее примерно так:
&НаСервере
Функция ПолучитьГеозоныОтслеживания()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Геозона.Ссылка КАК Ссылка,
| Геозона.Наименование КАК Наименование,
| Геозона.Широта КАК Широта,
| Геозона.Долгота КАК Долгота,
| Геозона.Радиус КАК Радиус
|ИЗ
| Справочник.Геозона КАК Геозона";
Выборка = Запрос.Выполнить().Выбрать();
МассивГеозон = Новый Массив;
Пока Выборка.Следующий() Цикл
КоординатыГеозоны = Новый ГеографическиеКоординаты(Выборка.Широта, Выборка.Долгота);
Геозона = Новый Геозона(Выборка.Ссылка, Выборка.Наименование, КоординатыГеозоны, Выборка.Радиус);
МассивГеозон.Добавить(Геозона);
КонецЦикла;
Возврат МассивГеозон;
КонецФункции
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)