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 ID. Он представляет уникальный идентификатор для учетной записи Azure Maps и может быть получен из API учетной записи уровня управления Azure Maps. Инструкции по использованию Microsoft Entra ID безопасности в Azure Maps см. в следующих статьях. |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
ОК Значение заголовка X-Correlation-id присутствует в ответе асинхронного вызова и данных событий Сетки событий. Это помогает сопоставить ответ асинхронного вызова с соответствующим событием Сетки событий. Headers X-Correlation-id: string |
|
Other Status Codes |
Произошла непредвиденная ошибка. |
Безопасность
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
}
Определения
Имя | Описание |
---|---|
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 |