Данные GeoJSON для геозон

API Azure Maps GET geofence и POST Geofence позволяет получить расположение координаты относительно предоставленной геозоны или набора ограждений. В этой статье подробно описано, как подготовить данные для геозон, применимые в API-интерфейсах GET и POST в Azure Maps.

Данные для геозоны или набора геозон, представленных Feature в формате Object и FeatureCollection Object GeoJSON , определены в rfc7946. В дополнение к этому:

  • Объект GeoJSON может иметь тип объекта Feature или FeatureCollection.
  • Объект Geometry может иметь тип Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon или GeometryCollection.
  • Все свойства компонента должны содержать атрибут geometryId, который используется для идентификации геозоны.
  • Компонент с типом Point, MultiPoint, LineString и MultiLineString должен содержать radius в списке своих свойств. Значение radius измеряется в метрах. Для radius допускаются значения в диапазоне от 1 до 10000.
  • Объект с типом polygon geometry и multipolygon не имеет свойства radius.
  • Используя необязательное свойство validityTime, пользователь может настроить время ожидания и период действия для данных геозон. Если это значение не указано, срок данных никогда не истечет и они всегда считаются действительными.
  • expiredTime обозначает дату и время истечения срока действия для данных геозон. Если значение userTime в запросе позже этого значения, соответствующие данные геозоны считаются данными с истекшим сроком действия и не запрашиваются. После этого geometryId данных этой геозоны включается в expiredGeofenceGeometryId массив в ответе геозоны.
  • validityPeriod содержит список периодов действия для геозон. Если значение userTime в запросе выходит за пределы срока действия, соответствующие данные геозоны считаются недопустимыми и не запрашиваются. Идентификатор geometryId этих данных геозон включается в массив invalidPeriodGeofenceGeometryId в ответе о геозонах. В следующей таблице приведены свойства для элемента validityPeriod.
Имя Тип Обязательно Описание
startTime Datetime Да Дата и время начала периода действия.
endTime Datetime Да Дата и время окончания периода действия.
recurrenceType строка false Тип повторений для периода. Возможны следующие значения: Daily, Weekly, Monthly или Yearly. Значение по умолчанию — Daily.
businessDayOnly Логическое false Указывает, что данные считаются допустимыми только в рабочие дни. Значение по умолчанию — false.
  • Все значения координат представляются в формате [долгота, широта], который определен в WGS84.
  • Для каждого компонента, который содержит MultiPoint, MultiLineString, MultiPolygon или GeometryCollection, свойства применяются ко всем элементам. Например: все точки в MultiPoint используют один и тот же радиус для формирования геозоны с несколькими кругами.
  • Если используются точки, определяющие круги, геометрию этих кругов можно представить с помощью геометрического объекта Point, свойства которого описаны в статье о расширении геометрических объектов GeoJSON.

Ниже приведен примерный текст запроса по геозоне, которая представлена в виде набора кругов, определенных в GeoJSON по координатам центральной точки и радиусу. Допустимый период данных геозоны начинается с 2018-10-229:00 до 17:00, повторяющийся каждый день, за исключением выходных. expiredTime указывает, что данные геозоны считаются просроченными, если userTime в запросе указано позднее 2019-01-01.

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-122.126986, 47.639754]
    },
    "properties": {
        "geometryId" : "1",
        "subType": "Circle",
        "radius": 500,
        "validityTime": 
        {
            "expiredTime": "2019-01-01T00:00:00",
            "validityPeriod": [
                {
                    "startTime": "2018-10-22T09:00:00",
                    "endTime": "2018-10-22T17:00:00",
                    "recurrenceType": "Daily",
                    "recurrenceFrequency": 1,
                    "businessDayOnly": true
                }
            ]
        }
    }
}