Поделиться через


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

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

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

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

Ниже приведен примерный текст запроса по геозоне, которая представлена в виде набора кругов, определенных в GeoJSON по координатам центральной точки и радиусу. Допустимый период данных геозоны начинается от 2018-10-229 УТРА до 5 вечера, повторяющийся каждый день, за исключением выходных. 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
                }
            ]
        }
    }
}