Spatial - Get Geofence

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

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

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

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

Код InnerError для геозон

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

innererror.code error.message
NullDeviceId Идентификатор устройства не должен иметь значение NULL.
NullUdid Udid не должен иметь значение NULL.
UdidWrongFormat Udid следует получить из API приема пользовательских данных.
InvalidUserTime Недопустимое время пользователя.
InvalidSearchBuffer Недопустимый элемент Searchbuffer.
InvalidSearchRange Диапазон значений searchbuffer должен быть от 0 до 500 метров.
InvalidLatLon Недопустимые параметры Lat и (или) lon.
InvalidIsAsyncValue Недопустимый параметр IsAsync.
InvalidModeValue Недопустимый параметр режима.
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, пакетов SDK для Azure или 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 можно использовать, чтобы разрешить приложениям управлять доступом более безопасным способом, чем общий ключ.

Для общедоступных приложений мы рекомендуем настроить определенный список разрешенных источников в ресурсе учетной записи map , чтобы ограничить использование маркера 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

Объект ошибки.

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