Данные 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-22
9: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
}
]
}
}
}