Spatial - Get Geofence

Используйте для получения сведений о близости координаты к геозоне.

Get Geofence API — это HTTP-запросGET, который получает сведения о близости координаты к геозоне, отправленной в реестр данных. Вы отправляете геозону или набор ограждений в учетную запись хранения Azure, а затем регистрируете их в своей учетной записи Azure Maps с помощью реестра данных. Дополнительные сведения см. в статье Создание реестра данных. Дополнительные сведения о формате данных геозоны см. в разделе Геозона данных GeoJSON. Чтобы запросить близость координаты, укажите расположение отслеживаемого объекта, а также идентификатор для ограждения или набора ограждений. Ответ будет содержать сведения об расстоянии от внешнего края геозоны. Отрицательное значение означает, что координата находится внутри забора, а положительное значение означает, что оно находится за пределами забора.

Этот API можно использовать для различных сценариев, в том числе для отслеживания ресурсов, управления автопарком или настройки оповещений о перемещении объектов.

API поддерживает интеграцию с Сеткой событий. Параметр isAsync используется для включения интеграции с Сеткой событий (отключен по умолчанию). Чтобы протестировать этот API, можно отправить примеры данных из примеров API post geofence (текст запроса) с помощью службы реестра данных и заменить {udid} из примера запроса ниже на объект , используемый udid для создания реестра данных. Дополнительные сведения о службе реестра данных см. в статье Создание реестра данных.

Код geofencing InnerError

В контракте ошибки ответа на геозону — это объект, innererror содержащий сведения об ошибке, относящиеся к службе. code — это свойство, в innererror котором может сопоставляться с определенным типом ошибки геозон. В приведенной ниже таблице показано сопоставление кода между всеми известными типами ошибок клиента и соответствующей ошибкой messageгеозон.

innererror.code error.message
NullDeviceId Идентификатор устройства не должен иметь значение NULL.
NullUdid Udid не должен иметь значение NULL.
UdidWrongFormat Udid следует получить из API приема пользовательских данных.
InvalidUserTime Недопустимое значение Usertime.
InvalidSearchBuffer Функция searchbuffer недопустима.
InvalidSearchRange Диапазон значений searchbuffer должен составлять от 0 до 500 метров.
InvalidLatLon Недопустимые параметры Lat и (или) lon.
InvalidIsAsyncValue Недопустимый параметр IsAsync.
InvalidModeValue Недопустимый параметр mode.
InvalidJson Данные геозон не являются допустимым JSON-файлом.
NotSupportedGeoJson Данные геозон нельзя считать как feature или FeatureCollections.
InvalidGeoJson Недопустимые данные геозон.
NoUserDataWithAccountOrSubscription Не удается найти данные о геозонах пользователя с указанным идентификатором учетной записи и (или) идентификатором подписки.
NoUserDataWithUdid Не удается найти данные о геозонах пользователя с предоставленным udid.
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}&z={z}&userTime={userTime}&searchBuffer={searchBuffer}&isAsync={isAsync}&mode={mode}

Параметры URI

Имя В Обязательно Тип Описание
format
path True

JsonFormat

Требуемый формат ответа. Поддерживается только формат json.

geography
path True

string

Расположение учетной записи Azure Maps. Допустимые значения: us (восточная часть США, центрально-западная часть США, западная часть США 2) и eu (Северная Европа, Западная Европа). Этот параметр является обязательным при указании udid в запросе . Например, если учетная запись Azure Maps находится в восточной части США, будут приниматься только запросы к географическому региону.

api-version
query True

string

Номер версии API Azure Maps

deviceId
query True

string

Идентификатор устройства

lat
query True

number

Широта передаваемого расположения. Пример: 48.36.

lon
query True

number

Долгота передаваемого расположения. Пример: -124.63.

udid
query True

string

Уникальный идентификатор, используемый при создании реестра данных для отправки допустимого объекта GeoJSON FeatureCollection. Дополнительные сведения см. в документе RFC 7946 . Все свойства компонента должны содержать geometryId, который используется для идентификации геометрии и учитывает регистр. Дополнительные сведения о службе реестра данных см. в статье Создание реестра данных.

isAsync
query

boolean

Если значение равно true, запрос будет использовать механизм асинхронных событий; Если значение равно false, запрос будет синхронизирован и не активирует никаких событий. Значением по умолчанию является false.

mode
query

GeofenceMode

Режим механизма асинхронных событий геозон.

searchBuffer
query

number

Радиус буфера вокруг геозоны в метрах, определяющий, как далеко искать внутри и за пределами границы ограждения относительно координаты, указанной при вычислении результата. Минимальное значение равно 0, а максимальное — 500. Значение по умолчанию — 50.

userTime
query

string

date-time

Время запроса пользователя. Если в запросе нет, значение по умолчанию — DateTime.Now.

z
query

number

Уровень моря в метре места прохождения. Если указан этот параметр, используется двухмерное выдавливание. Пример: 200.

Заголовок запроса

Имя Обязательно Тип Описание
x-ms-client-id

string

Указывает учетную запись, предназначенную для использования в сочетании с моделью безопасности Microsoft Entra ID. Он представляет уникальный идентификатор для учетной записи Azure Maps и может быть получен из API учетной записи уровня управления Azure Maps. Инструкции по использованию Microsoft Entra ID безопасности в Azure Maps см. в следующих статьях.

Ответы

Имя Тип Описание
200 OK

Geofence

ОК Значение заголовка X-Correlation-id присутствует в ответе асинхронного вызова и данных событий Сетки событий. Это помогает сопоставить ответ асинхронного вызова с соответствующим событием Сетки событий.

Headers

X-Correlation-id: string

Other Status Codes

ErrorResponse

Произошла непредвиденная ошибка.

Безопасность

AADToken

Это Microsoft Entra потоков OAuth 2.0. В сочетании с управлением доступом на основе ролей Azure его можно использовать для управления доступом к Azure Maps REST API. Элементы управления доступом на основе ролей Azure используются для назначения доступа к одной или нескольким учетным записям Azure Maps ресурсов или вложенным ресурсам. Любому пользователю, группе или субъекту-службе может быть предоставлен доступ через встроенную или пользовательскую роль, состоящую из одного или нескольких разрешений для Azure Maps REST API.

Для реализации сценариев рекомендуется ознакомиться с основными понятиями проверки подлинности. Таким образом, это определение безопасности предоставляет решение для моделирования приложений с помощью объектов, которые могут управлять доступом к определенным API и областям.

Примечания

  • Это определение безопасности требует использования заголовкаx-ms-client-id, чтобы указать, к какому Azure Maps ресурсу приложение запрашивает доступ. Его можно получить из API управления Картами.

объект Authorization URL предназначен для экземпляра общедоступного облака Azure. Национальные облака имеют уникальные URL-адреса авторизации и конфигурации Microsoft Entra ID. * Управление доступом на основе ролей Azure настраивается из плоскости управления Azure с помощью портал Azure, PowerShell, CLI, пакетов SDK для Azure или REST API. * Использование веб-пакета SDK для Azure Maps позволяет настраивать приложение на основе конфигурации для нескольких вариантов использования.

  • Дополнительные сведения о платформа удостоверений Майкрософт см. в платформа удостоверений Майкрософт обзоре.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Имя Описание
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Это общий ключ, который подготавливается при создании ресурса Azure Maps с помощью плоскости управления Azure с помощью портал Azure, PowerShell, CLI, пакетов AZURE SDK или REST API.

С помощью этого ключа любое приложение авторизовано для доступа ко всем REST API. Другими словами, в настоящее время они могут рассматриваться как master ключи к учетной записи, для которой они выдаются.

Для общедоступных приложений мы рекомендуем использовать межсерверный доступ Azure Maps REST API, где этот ключ можно безопасно хранить.

Type: apiKey
In: header

SAS Token

Этот маркер подписанного URL-адреса создается из операции List SAS в ресурсе Azure Maps через плоскость управления Azure с помощью портал Azure, PowerShell, CLI, пакетов SDK для Azure или REST API.

С помощью этого маркера любое приложение авторизовано для доступа с помощью элементов управления доступом на основе ролей Azure и точного контроля срока действия, скорости и регионов использования конкретного маркера. Иными словами, маркер SAS можно использовать, чтобы разрешить приложениям управлять доступом более безопасным способом, чем общий ключ.

Для общедоступных приложений мы рекомендуем настроить определенный список разрешенных источников в ресурсе учетной записи сопоставления , чтобы ограничить злоупотребление отрисовкой и регулярно обновлять маркер SAS.

Type: apiKey
In: header

Примеры

GetGeofence

Sample Request

GET https://us.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId=unique_device_name_under_account&udid=f6495f62-94f8-0ec2-c252-45626f82fcb2&lat=48.36&lon=-124.63&userTime=2022-08-21T17:32:28Z&searchBuffer=50&isAsync=True&mode=EnterAndExit

Sample Response

{
  "geometries": [
    {
      "deviceId": "unique_device_name_under_account",
      "udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
      "geometryId": "2",
      "distance": 999,
      "nearestLat": 47.621954,
      "nearestLon": -122.131841
    },
    {
      "deviceId": "unique_device_name_under_account",
      "udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
      "geometryId": "1",
      "distance": -999,
      "nearestLat": 47.609833,
      "nearestLon": -122.148274
    }
  ],
  "expiredGeofenceGeometryId": [
    "5"
  ],
  "invalidPeriodGeofenceGeometryId": [
    "3",
    "4"
  ],
  "isEventPublished": true
}

Определения

Имя Описание
ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

ErrorDetail

Сведения об ошибке.

ErrorResponse

Сообщение об ошибке

Geofence

Этот объект возвращается из вызова близкого расположения геозоны.

GeofenceGeometry

Геометрия геозон.

GeofenceMode

Режим механизма асинхронных событий геозон.

JsonFormat

Требуемый формат ответа. Поддерживается только формат json.

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

Имя Тип Описание
info

object

Дополнительные сведения.

type

string

Тип дополнительных сведений.

ErrorDetail

Сведения об ошибке.

Имя Тип Описание
additionalInfo

ErrorAdditionalInfo[]

Дополнительные сведения об ошибке.

code

string

Код ошибки.

details

ErrorDetail[]

Сведения об ошибке.

message

string

Сообщение об ошибке.

target

string

Целевой объект ошибки.

ErrorResponse

Сообщение об ошибке

Имя Тип Описание
error

ErrorDetail

Объект error.

Geofence

Этот объект возвращается из вызова близкого расположения геозоны.

Имя Тип Описание
expiredGeofenceGeometryId

string[]

Списки идентификатора геометрии геозоны, срок действия которого истек относительно времени пользователя в запросе.

geometries

GeofenceGeometry[]

Перечисляет геометрические объекты границ, которые содержат координаты позиции или перекрытие searchBuffer вокруг этой позиции.

invalidPeriodGeofenceGeometryId

string[]

Списки геометрического идентификатора геозоны, который находится в недопустимом периоде относительно времени пользователя в запросе.

isEventPublished

boolean

Имеет значение truе, если хотя бы одно событие опубликовано в подписчике событий Azure Maps, или false в противном случае. Это будет отображаться в ответе, только если параметру запроса isAsync присвоено значение true.

GeofenceGeometry

Геометрия геозон.

Имя Тип Описание
deviceId

string

Идентификатор устройства.

distance

number

Расстояние от координаты до ближайшей границы геозоны (в метрах, за исключением использования специальных значений -999/999). Положительный результат означает, что координаты выходят за пределы геозоны. Если координаты выходят за пределы геозоны и расстояние до ближайшей границы превышает размер значения searchBuffer, возвращается значение 999. Отрицательный результат означает, что координаты находятся в пределах геозоны. Если координаты находятся в пределах многоугольника и расстояние до ближайшей границы превышает размер значения searchBuffer, возвращается значение –999. Значение 999 означает, что координаты с высоким уровнем надежности расположены за пределами геозоны. Значение –999 означает, что координаты с высоким уровнем надежности расположены в пределах геозоны.

geometryId

string

Уникальный идентификатор идентифицирует геометрию.

nearestLat

number

Широта ближайшей точки геометрии.

nearestLon

number

Долгота ближайшей точки геометрии.

nearestZ

number

Уровень моря в метре ближайшей точки на двухмерной геометрии экструзии. Это будет отображаться в ответе, только если в запросе указано значение zInMeter.

udId

string

Уникальный идентификатор, используемый при создании реестра данных для отправки допустимого объекта GeoJSON FeatureCollection. Дополнительные сведения см. в документе RFC 7946 . Все свойства компонента должны содержать geometryId, который используется для идентификации геометрии и учитывает регистр. Дополнительные сведения о службе реестра данных см. в статье Создание реестра данных.

GeofenceMode

Режим механизма асинхронных событий геозон.

Имя Тип Описание
All

string

Опубликуйте все результаты запроса в подписке на события Azure Maps учетной записи.

EnterAndExit

string

Публикуйте результат только в том случае, если расположение пользователя считается пересечением границы геозон.

JsonFormat

Требуемый формат ответа. Поддерживается только формат json.

Имя Тип Описание
json

string

Формат обмена данными нотации объектов JavaScript