Spatial - Post Geofence
을 사용하여 지오펜스에 대한 좌표의 근접성을 가져옵니다.
Post Geofence
API는 제공된 지오펜스 또는 펜스 집합에 대한 좌표의 근접성을 검색하는 HTTP POST
요청입니다. 요청을 사용하면 POST
펜스 데이터를 미리 업로드할 필요가 없습니다. 대신 쿼리 매개 변수에서 추적하는 개체의 위치와 요청 후 본문의 펜스 또는 펜스 데이터 집합을 제공합니다. 지오펜스 데이터 형식에 대한 자세한 내용은 GeoJSON 데이터 지오펜싱을 참조하세요. 응답에는 지오펜스의 바깥 가장자리로부터의 거리에 대한 정보가 포함됩니다. 음수 값은 좌표가 펜스 내부에 있음을 의미하고 양수 값은 펜스 외부에 있음을 의미합니다.
이 API는 자산 추적, 함대 관리 또는 개체 이동에 대한 경고 설정과 같은 다양한 시나리오에 사용할 수 있습니다.
API는 Event Grid와의 통합을 지원합니다. isAsync 매개 변수는 Event Grid와의 통합을 사용하도록 설정하는 데 사용됩니다(기본적으로 사용하지 않도록 설정됨).
POST https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&lat={lat}&lon={lon}
POST https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&lat={lat}&lon={lon}&z={z}&userTime={userTime}&searchBuffer={searchBuffer}&isAsync={isAsync}&mode={mode}
URI 매개 변수
Name | In(다음 안에) | 필수 | 형식 | Description |
---|---|---|---|---|
format
|
path | True |
원하는 응답 형식입니다.
|
|
geography
|
path | True |
string |
Azure Maps 계정의 위치입니다. 유효한 값은 당사(미국 동부, 미국 중서부, 미국 서부 2) 및 eu(북유럽, 서유럽)입니다. 이 매개 변수는 요청에 가 |
api-version
|
query | True |
string |
Azure Maps API의 버전 번호. |
device
|
query | True |
string |
디바이스의 ID |
lat
|
query | True |
number |
전달되는 위치의 위도입니다. 예: 48.36. |
lon
|
query | True |
number |
전달되는 위치의 경도입니다. 예: -124.63. |
is
|
query |
boolean |
true이면 요청은 비동기 이벤트 메커니즘을 사용합니다. false이면 요청이 동기화되고 이벤트를 트리거하지 않습니다. 기본값은 false입니다. |
|
mode
|
query |
지오펜싱 비동기 이벤트 메커니즘의 모드입니다. |
||
search
|
query |
number |
결과를 계산할 때 제공된 좌표에 대해 펜스 테두리 내부 및 외부에서 검색하는 정도를 정의하는 지오펜스 주위의 버퍼 반경(미터)입니다. 최소값은 0이고 최댓값은 500입니다. 기본값은 50입니다. |
|
user
|
query |
string date-time |
사용자 요청 시간입니다. 요청에 표시되지 않으면 기본값은 DateTime.UtcNow입니다. |
|
z
|
query |
number |
전달되는 위치의 미터 단위의 해수면입니다. 이 매개 변수가 표시되면 2D 압출 지오펜싱이 적용됩니다. 예: 200. |
요청 헤더
Name | 필수 | 형식 | Description |
---|---|---|---|
x-ms-client-id |
string |
Microsoft Entra ID 보안 모델과 함께 사용할 계정을 지정합니다. Azure Maps 계정에 대한 고유 ID를 나타내며 Azure Maps 관리 평면 계정 API에서 검색할 수 있습니다. Azure Maps에서 Microsoft Entra ID 보안을 사용하려면 지침은 다음 문서를 참조하세요. |
요청 본문
Name | 필수 | 형식 | Description |
---|---|---|---|
features | True |
유효한 |
|
type | True |
string:
Feature |
|
응답
Name | 형식 | Description |
---|---|---|
200 OK |
확인 X-Correlation-id 헤더 값은 비동기 호출의 응답 및 Event Grid 이벤트 데이터에 있습니다. 비동기 호출의 응답과 해당 Event Grid 이벤트의 상관 관계를 지정하는 데 도움이 됩니다. 헤더 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 Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면 에서 구성됩니다.
* Azure Maps 웹 SDK 를 사용하면 여러 사용 사례에 대한 애플리케이션의 구성 기반 설정을 사용할 수 있습니다.
- Microsoft ID 플랫폼에 대한 자세한 내용은 Microsoft ID 플랫폼 개요를 참조하세요.
형식:
oauth2
Flow:
implicit
권한 부여 URL:
https://login.microsoftonline.com/common/oauth2/authorize
범위
Name | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면을 통해 Azure Maps 리소스 를 만들 때 프로비전되는 공유 키입니다.
이 키를 사용하면 모든 애플리케이션이 모든 REST API에 액세스할 수 있는 권한이 부여됩니다. 즉, 이러한 키는 현재 발급된 계정의 마스터 키로 처리될 수 있습니다.
공개적으로 노출된 애플리케이션의 경우 이 키를 안전하게 저장할 수 있는 Azure Maps REST API의 서버-서버 액세스를 사용하는 것이 좋습니다.
형식:
apiKey
In(다음 안에):
header
SAS Token
Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면을 통해 Azure Maps 리소스 의 SAS 나열 작업에서 생성된 공유 액세스 서명 토큰입니다.
이 토큰을 사용하면 모든 애플리케이션이 특정 토큰에 사용할 만료, 속도 및 지역에 대한 Azure 역할 기반 액세스 제어 및 세분화된 제어를 사용하여 액세스할 수 있는 권한이 부여됩니다. 즉, SAS 토큰을 사용하여 애플리케이션이 공유 키보다 더 보안이 유지되는 방식으로 액세스를 제어할 수 있습니다.
공개적으로 노출된 애플리케이션의 경우 렌더링 남용을 제한하고 정기적으로 SAS 토큰을 갱신하도록 맵 계정 리소스 에서 허용되는 특정 원본 목록을 구성하는 것이 좋습니다.
형식:
apiKey
In(다음 안에):
header
예제
PostGeofence
샘플 요청
POST https://us.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId=unique_device_name_under_account&lat=48.36&lon=-124.63&userTime={userTime}&searchBuffer=50&isAsync=True&mode=EnterAndExit
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-122.13241226662022,
47.61701140091722
],
[
-122.12810106940353,
47.6169969269402
],
[
-122.12824948956276,
47.61907683751349
],
[
-122.12833297981392,
47.621929787055336
],
[
-122.12971398040168,
47.62184100705295
],
[
-122.1318413862121,
47.62195364373008
],
[
-122.13231034769727,
47.61716332618121
],
[
-122.13241226662022,
47.61701140091722
]
]
]
},
"properties": {
"geometryId": "2",
"name": "Crossroad Mall"
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-122.1534220563239,
47.60981818546625
],
[
-122.153451623509,
47.60628733146004
],
[
-122.14971782206638,
47.606250040787046
],
[
-122.14817354810637,
47.606391046012305
],
[
-122.1482735128807,
47.60983316796356
],
[
-122.15225500989803,
47.60982613678752
],
[
-122.1534220563239,
47.60981818546625
]
]
]
},
"properties": {
"geometryId": "1",
"name": "Sammamish High school"
}
}
]
}
샘플 응답
{
"geometries": [
{
"deviceId": "unique_device_name_under_account",
"geometryId": "2",
"distance": -999,
"nearestLat": 47.621954,
"nearestLon": -122.131841
},
{
"deviceId": "unique_device_name_under_account",
"geometryId": "1",
"distance": 999,
"nearestLat": 47.609833,
"nearestLon": -122.148274
}
],
"expiredGeofenceGeometryId": [],
"invalidPeriodGeofenceGeometryId": [],
"isEventPublished": true
}
정의
Name | Description |
---|---|
Error |
리소스 관리 오류 추가 정보입니다. |
Error |
오류 세부 정보입니다. |
Error |
오류 응답 |
Geofence |
이 개체는 지오펜스 근접 호출에서 반환됩니다. |
Geofence |
지오펜싱 기하 도형입니다. |
Geofence |
지오펜싱 비동기 이벤트 메커니즘의 모드입니다. |
Geo |
유효한 개체 형식입니다 |
Geo |
유효한 개체 형식입니다 |
Geo |
유효한 |
Geo |
유효한 개체 형식입니다 |
Geo |
유효한 |
Geo |
유효한 |
Geo |
유효한 |
Geo |
유효한 개체 형식입니다 |
Geo |
유효한 |
Geo |
유효한 |
Json |
원하는 응답 형식입니다.
|
ErrorAdditionalInfo
리소스 관리 오류 추가 정보입니다.
Name | 형식 | Description |
---|---|---|
info |
object |
추가 정보입니다. |
type |
string |
추가 정보 유형입니다. |
ErrorDetail
오류 세부 정보입니다.
Name | 형식 | Description |
---|---|---|
additionalInfo |
오류 추가 정보입니다. |
|
code |
string |
오류 코드입니다. |
details |
오류 세부 정보입니다. |
|
message |
string |
오류 메시지입니다. |
target |
string |
오류 대상입니다. |
ErrorResponse
오류 응답
Name | 형식 | Description |
---|---|---|
error |
Error 개체. |
Geofence
이 개체는 지오펜스 근접 호출에서 반환됩니다.
Name | 형식 | Description |
---|---|---|
expiredGeofenceGeometryId |
string[] |
요청의 사용자 시간을 기준으로 만료된 지오펜스의 기하 도형 ID 목록입니다. |
geometries |
좌표 위치를 포함하거나 위치 주위의 searchBuffer와 겹치는 펜스 기하 도형을 나열합니다. |
|
invalidPeriodGeofenceGeometryId |
string[] |
요청의 사용자 시간을 기준으로 잘못된 기간에 있는 지오펜스의 기하 도형 ID 목록입니다. |
isEventPublished |
boolean |
하나 이상의 이벤트가 Azure Maps 이벤트 구독자에 게시된 경우에는 true이고, Azure Maps 이벤트 구독자에 이벤트가 게시되지 않은 경우에는 false입니다. 이는 'isAsync' 쿼리 매개 변수가 true로 설정된 경우에만 응답으로 표시됩니다. |
GeofenceGeometry
지오펜싱 기하 도형입니다.
Name | 형식 | Description |
---|---|---|
deviceId |
string |
디바이스의 ID입니다. |
distance |
number |
좌표에서 지오펜스의 가장 가까운 테두리까지의 거리(특수 값 -999/999가 사용되는 경우를 제외하고 미터). 양수는 좌표가 지오펜스 외부에 있음을 의미합니다. 좌표가 지오펜스 외부에 있지만 가장 가까운 지오펜스 경계에서 searchBuffer 값보다 멀리 떨어진 경우의 값은 999입니다. 음수는 좌표가 지오펜스 내부에 있음을 의미합니다. 좌표가 다각형 내부에 있지만 가장 가까운 지오펜싱 경계에서 searchBuffer 값보다 멀리 떨어진 경우의 값은 -999입니다. 값 999는 좌표가 지오펜스 외부에 있다는 신뢰도가 높음을 의미합니다. 값 -999는 좌표가 지오펜스 내부에 있다는 신뢰도가 높음을 의미합니다. |
geometryId |
string |
고유 ID는 기하 도형을 식별합니다. |
nearestLat |
number |
기하 도형에서 가장 가까운 지점의 위도입니다. |
nearestLon |
number |
기하 도형에서 가장 가까운 지점의 경도입니다. |
nearestZ |
number |
2D 압출 기하 도형에서 가장 가까운 지점 미터의 해수면입니다. 요청에서 'zInMeter'에 대한 값이 제공되는 경우에만 응답으로 표시됩니다. |
udId |
string |
유효한 GeoJSON FeatureCollection 개체를 업로드하기 위해 데이터 레지스트리 를 만들 때 사용되는 고유 ID입니다. 자세한 내용은 RFC 7946 을 참조하세요. 모든 기능의 속성에는 기하 도형을 식별하는 데 사용되며 대/소문자를 구분하는 가 포함되어 |
GeofenceMode
지오펜싱 비동기 이벤트 메커니즘의 모드입니다.
Name | 형식 | Description |
---|---|---|
All |
string |
모든 쿼리 결과를 Azure Maps 계정 이벤트 구독에 게시합니다. |
EnterAndExit |
string |
사용자 위치가 교차 지오펜싱 보더로 간주되는 경우에만 결과를 게시합니다. |
GeoJsonFeature
유효한 개체 형식입니다 GeoJSON Feature
. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
featureType |
string |
기능의 유형입니다. 값은 현재 기능이 속한 데이터 모델에 따라 달라집니다. 일부 데이터 모델에는 빈 값이 있을 수 있습니다. |
geometry | GeoJsonGeometry: |
유효한 |
id |
string |
기능에 대한 식별자입니다. |
type |
string:
Feature |
|
GeoJsonFeatureCollection
유효한 개체 형식입니다 GeoJSON FeatureCollection
. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
features |
유효한 |
|
type |
string:
Feature |
|
GeoJsonGeometry
유효한 GeoJSON
기하 도형 개체입니다. 형식은 Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon 및 GeometryCollection의 7가지 유효한 GeoJSON 기하 도형 형식 중 하나여야 합니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
type |
Geo |
|
GeoJsonGeometryCollection
유효한 개체 형식입니다 GeoJSON GeometryCollection
. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
geometries | GeoJsonGeometry[]: |
유효한 |
type |
string:
Geometry |
|
GeoJsonLineString
유효한 GeoJSON LineString
기하 도형 형식입니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
기하 도형의 |
type |
string:
Line |
|
GeoJsonMultiLineString
유효한 GeoJSON MultiLineString
기하 도형 형식입니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
기하 도형의 |
type |
string:
Multi |
|
GeoJsonMultiPoint
유효한 GeoJSON MultiPoint
기하 도형 형식입니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
기하 도형의 |
type |
string:
Multi |
|
GeoJsonMultiPolygon
유효한 개체 형식입니다 GeoJSON MultiPolygon
. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
유효한 |
type |
string:
Multi |
|
GeoJsonPoint
유효한 GeoJSON Point
기하 도형 형식입니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
|
type |
string:
Point |
|
GeoJsonPolygon
유효한 GeoJSON Polygon
기하 도형 형식입니다. 자세한 내용은 RFC 7946 을 참조하세요.
Name | 형식 | Description |
---|---|---|
coordinates |
number[] |
기하 도형 형식의 |
type |
string:
Polygon |
|
JsonFormat
원하는 응답 형식입니다.
json
형식만 지원됩니다.
Name | 형식 | Description |
---|---|---|
json |
string |