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 |
Требуемый формат ответа. Поддерживается только формат |
|
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, пакетов 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
}
Определения
Имя | Описание |
---|---|
Error |
Дополнительные сведения об ошибке управления ресурсами. |
Error |
Сведения об ошибке. |
Error |
Сообщение об ошибке |
Geofence |
Этот объект возвращается из вызова близкого взаимодействия геозоны. |
Geofence |
Геометрия геозон. |
Geofence |
Режим асинхронного события геозон. |
Json |
Требуемый формат ответа. Поддерживается только формат |
ErrorAdditionalInfo
Дополнительные сведения об ошибке управления ресурсами.
Имя | Тип | Описание |
---|---|---|
info |
object |
Дополнительные сведения. |
type |
string |
Тип дополнительных сведений. |
ErrorDetail
Сведения об ошибке.
Имя | Тип | Описание |
---|---|---|
additionalInfo |
Дополнительные сведения об ошибке. |
|
code |
string |
Код ошибки. |
details |
Сведения об ошибке. |
|
message |
string |
Сообщение об ошибке. |
target |
string |
Целевой объект ошибки. |
ErrorResponse
Сообщение об ошибке
Имя | Тип | Описание |
---|---|---|
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 |