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 |
Требуемый формат ответа. Поддерживается только формат |
|
geography
|
path | True |
string |
Расположение учетной записи Azure Maps. Допустимые значения: us (восточная часть США, центрально-западная часть США, западная часть США 2) и eu (Северная Европа, Западная Европа). Этот параметр является обязательным при указании |
api-version
|
query | True |
string |
Номер версии API Azure Maps |
device
|
query | True |
string |
Идентификатор устройства |
lat
|
query | True |
number |
Широта передаваемого расположения. Пример: 48.36. |
lon
|
query | True |
number |
Долгота передаваемого расположения. Пример: -124.63. |
udid
|
query | True |
string |
Уникальный идентификатор, используемый при создании реестра данных для отправки допустимого объекта GeoJSON FeatureCollection. Дополнительные сведения см. в документе RFC 7946 . Все свойства компонента должны содержать |
is
|
query |
boolean |
Если значение равно true, запрос будет использовать механизм асинхронных событий; Если значение равно false, запрос будет синхронизирован и не активирует никаких событий. Значением по умолчанию является false. |
|
mode
|
query |
Режим механизма асинхронных событий геозон. |
||
search
|
query |
number |
Радиус буфера вокруг геозоны в метрах, определяющий, как далеко искать внутри и за пределами границы ограждения относительно координаты, указанной при вычислении результата. Минимальное значение равно 0, а максимальное — 500. Значение по умолчанию — 50. |
|
user
|
query |
string date-time |
Время запроса пользователя. Если в запросе нет, значение по умолчанию — DateTime.Now. |
|
z
|
query |
number |
Уровень моря в метре места прохождения. Если указан этот параметр, используется двухмерное выдавливание. Пример: 200. |
Заголовок запроса
Имя | Обязательно | Тип | Описание |
---|---|---|---|
x-ms-client-id |
string |
Указывает, какая учетная запись предназначена для использования в сочетании с моделью безопасности Идентификатора Microsoft Entra. Он представляет уникальный идентификатор для учетной записи Azure Maps и может быть получен из API учетной записи плоскости управления Azure Maps. Инструкции по использованию безопасности Microsoft Entra ID в Azure Maps см. в следующих статьях . |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
ОК Значение заголовка X-Correlation-id присутствует в ответе асинхронного вызова и данных событий Сетки событий. Это помогает сопоставить ответ асинхронного вызова с соответствующим событием Сетки событий. Заголовки X-Correlation-id: string |
|
Other Status Codes |
Произошла непредвиденная ошибка. |
Безопасность
AADToken
Это потоки Microsoft Entra OAuth 2.0 . В сочетании с управлением доступом на основе ролей Azure его можно использовать для управления доступом к REST API Azure Maps. Элементы управления доступом на основе ролей Azure используются для назначения доступа к одной или нескольким учетным записям ресурсов Azure Maps или вложенным ресурсам. Любому пользователю, группе или субъекту-службе может быть предоставлен доступ через встроенную или пользовательскую роль, состоящую из одного или нескольких разрешений для REST API Azure Maps.
Для реализации сценариев рекомендуется ознакомиться с основными понятиями проверки подлинности. Таким образом, это определение безопасности предоставляет решение для моделирования приложений с помощью объектов, которые могут управлять доступом к определенным API и областям.
Примечания
- Это определение безопасности требует использования заголовка
x-ms-client-id
, чтобы указать, к какому ресурсу Azure Maps приложение запрашивает доступ. Его можно получить из API управления Картами.
объект Authorization URL
предназначен для экземпляра общедоступного облака Azure. Национальные облака имеют уникальные URL-адреса авторизации и конфигурации идентификатора Microsoft Entra.
* Управление доступом на основе ролей Azure настраивается из плоскости управления Azure с помощью портала Azure, PowerShell, CLI, пакетов Sdk для Azure или REST API.
* Использование веб-пакета SDK Azure Maps позволяет настраивать приложение на основе конфигурации для нескольких вариантов использования.
- Дополнительные сведения о платформе удостоверений Майкрософт см. в статье Обзор платформы удостоверений Майкрософт.
Тип:
oauth2
Flow:
implicit
URL-адрес авторизации:
https://login.microsoftonline.com/common/oauth2/authorize
Области
Имя | Описание |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Это общий ключ, который подготавливается при создании ресурса Azure Maps через плоскость управления Azure с помощью портала Azure, PowerShell, CLI, пакетов AZURE SDK или REST API.
С помощью этого ключа любое приложение авторизовано для доступа ко всем REST API. Иными словами, в настоящее время их можно рассматривать как главные ключи учетной записи, для которой они выдаются.
Для общедоступных приложений мы рекомендуем использовать межсерверный доступ к REST API Azure Maps, где этот ключ можно безопасно хранить.
Тип:
apiKey
В:
header
SAS Token
Это маркер подписанного URL-адреса, который создается из операции SAS list в ресурсе Azure Maps через плоскость управления Azure с помощью портала Azure, PowerShell, CLI, пакетов SDK для Azure или REST API.
С помощью этого маркера любое приложение авторизовано для доступа с помощью элементов управления доступом на основе ролей Azure и точного контроля срока действия, скорости и регионов использования конкретного маркера. Иными словами, маркер SAS можно использовать, чтобы разрешить приложениям управлять доступом более безопасным способом, чем общий ключ.
Для общедоступных приложений мы рекомендуем настроить определенный список разрешенных источников в ресурсе учетной записи сопоставления , чтобы ограничить злоупотребление отрисовкой и регулярно обновлять маркер SAS.
Тип:
apiKey
В:
header
Примеры
GetGeofence
Образец запроса
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
Пример ответа
{
"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
}
Определения
Имя | Описание |
---|---|
Error |
Дополнительные сведения об ошибке управления ресурсами. |
Error |
Сведения об ошибке. |
Error |
Сообщение об ошибке |
Geofence |
Этот объект возвращается из вызова близкого расположения геозоны. |
Geofence |
Геометрия геозон. |
Geofence |
Режим механизма асинхронных событий геозон. |
Json |
Требуемый формат ответа. Поддерживается только формат |
ErrorAdditionalInfo
Дополнительные сведения об ошибке управления ресурсами.
Имя | Тип | Описание |
---|---|---|
info |
object |
Дополнительные сведения. |
type |
string |
Тип дополнительных сведений. |
ErrorDetail
Сведения об ошибке.
Имя | Тип | Описание |
---|---|---|
additionalInfo |
Дополнительные сведения об ошибке. |
|
code |
string |
Код ошибки. |
details |
Сведения об ошибке. |
|
message |
string |
Сообщение об ошибке. |
target |
string |
Целевой объект ошибки. |
ErrorResponse
Сообщение об ошибке
Имя | Тип | Описание |
---|---|---|
error |
Объект error. |
Geofence
Этот объект возвращается из вызова близкого расположения геозоны.
Имя | Тип | Описание |
---|---|---|
expiredGeofenceGeometryId |
string[] |
Список идентификатора геометрии геозоны, срок действия которого истек относительно времени пользователя в запросе. |
geometries |
Перечисляет геометрические объекты границ, которые содержат координаты позиции или перекрытие 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 . Все свойства компонента должны содержать |
GeofenceMode
Режим механизма асинхронных событий геозон.
Имя | Тип | Описание |
---|---|---|
All |
string |
Опубликуйте все результаты запроса в подписке на события учетной записи Azure Maps. |
EnterAndExit |
string |
Публикуйте результат только в том случае, если расположение пользователя считается пересечением границы геозон. |
JsonFormat
Требуемый формат ответа. Поддерживается только формат json
.
Имя | Тип | Описание |
---|---|---|
json |
string |