다음을 통해 공유


Spatial - Get Geofence

을 사용하여 지오펜스에 대한 좌표의 근접성을 가져옵니다.

Get Geofence API는 데이터 레지스트리에 업로드된 지오펜스에 대한 좌표의 근접성을 검색하는 HTTP GET 요청입니다. Azure Storage 계정에 지오펜스 또는 펜스 집합을 업로드한 다음 데이터 레지스트리를 사용하여 Azure Maps 계정에 등록합니다. 자세한 내용은 데이터 레지스트리를 만드는 방법을 참조하세요. 지오펜스 데이터 형식에 대한 자세한 내용은 GeoJSON 데이터 지오펜싱을 참조하세요. 좌표의 근접성을 쿼리하려면 추적 중인 개체의 위치와 펜스 또는 펜스 집합의 ID를 제공하며 응답에는 지오펜스의 바깥 가장자리로부터의 거리에 대한 정보가 포함됩니다. 음수 값은 좌표가 펜스 내부에 있음을 의미하고 양수 값은 펜스 외부에 있음을 의미합니다.

이 API는 자산 추적, 함대 관리 또는 개체 이동에 대한 경고 설정과 같은 다양한 시나리오에 사용할 수 있습니다.

API는 Event Grid와의 통합을 지원합니다. isAsync 매개 변수는 Event Grid와의 통합을 사용하도록 설정하는 데 사용됩니다(기본적으로 사용하지 않도록 설정됨). 이 API를 테스트하려면 데이터 레지스트리 서비스를 사용하여 Post Geofence API 예제(요청 본문)에서 샘플 데이터를 업로드하고 아래 샘플 요청의 를 데이터 레지스트리를 만드는 데 사용되는 로 udid 바꿀 {udid} 수 있습니다. 데이터 레지스트리 서비스에 대한 자세한 내용은 데이터 레지스트리를 만드는 방법을 참조하세요.

지오펜싱 InnerError 코드

지오펜싱 응답 오류 계약 innererror 에서 는 오류에 대한 서비스별 정보를 포함하는 개체입니다. code 는 특정 지오펜싱 오류 유형에 매핑할 수 있는 속성 innererror 입니다. 아래 표에서는 알려진 모든 클라이언트 오류 형식과 해당 지오펜싱 오류 message간의 코드 매핑을 보여 줍니다.

innererror.code error.message
NullDeviceId 디바이스 ID는 null이 아니어야 합니다.
NullUdid Udid는 null이 아니어야 합니다.
UdidWrongFormat Udid는 사용자 데이터 수집 API에서 획득해야 합니다.
InvalidUserTime 사용자 시간이 잘못되었습니다.
InvalidSearchBuffer Searchbuffer가 잘못되었습니다.
InvalidSearchRange searchbuffer의 값 범위는 0~500미터여야 합니다.
InvalidLatLon 위도 및/또는 lon 매개 변수가 잘못되었습니다.
InvalidIsAsyncValue IsAsync 매개 변수가 잘못되었습니다.
InvalidModeValue 모드 매개 변수가 잘못되었습니다.
InvalidJson 지오펜싱 데이터는 유효한 json 파일이 아닙니다.
NotSupportedGeoJson 지오펜싱 데이터는 기능 또는 FeatureCollections로 읽을 수 없습니다.
InvalidGeoJson 지오펜싱 데이터가 잘못되었습니다.
NoUserDataWithAccountOrSubscription 제공된 account-id 및/또는 subscription-id를 사용하여 사용자 지오펜싱 데이터를 찾을 수 없습니다.
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 매개 변수

Name In(다음 안에) 필수 형식 Description
format
path True

JsonFormat

원하는 응답 형식입니다. json 형식만 지원됩니다.

geography
path True

string

Azure Maps 계정의 위치입니다. 유효한 값은 당사(미국 동부, 미국 중서부, 미국 서부 2) 및 eu(북유럽, 서유럽)입니다. 이 매개 변수는 요청에 가 udid 제공된 경우에 필요합니다. 예를 들어 Azure Maps 계정이 미국 동부에 있는 경우 지리에 대한 요청만 수락됩니다.

api-version
query True

string

Azure Maps API의 버전 번호.

deviceId
query True

string

디바이스의 ID

lat
query True

number

전달되는 위치의 위도입니다. 예: 48.36.

lon
query True

number

전달되는 위치의 경도입니다. 예: -124.63.

udid
query True

string

유효한 GeoJSON FeatureCollection 개체를 업로드하기 위해 데이터 레지스트리 를 만들 때 사용되는 고유 ID입니다. 자세한 내용은 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

전달되는 위치의 미터 단위의 해수면입니다. 이 매개 변수가 표시되면 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
200 OK

Geofence

확인 X-Correlation-id 헤더 값은 비동기 호출의 응답 및 Event Grid 이벤트 데이터에 있습니다. 비동기 호출의 응답과 해당 Event Grid 이벤트의 상관 관계를 지정하는 데 도움이 됩니다.

헤더

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 Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면 에서 구성됩니다. * Azure Maps 웹 SDK 를 사용하면 여러 사용 사례에 대한 애플리케이션의 구성 기반 설정을 사용할 수 있습니다.

형식: 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

예제

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
}

정의

Name Description
ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

ErrorDetail

오류 세부 정보입니다.

ErrorResponse

오류 응답

Geofence

이 개체는 지오펜스 근접 호출에서 반환됩니다.

GeofenceGeometry

지오펜싱 기하 도형입니다.

GeofenceMode

지오펜싱 비동기 이벤트 메커니즘의 모드입니다.

JsonFormat

원하는 응답 형식입니다. json 형식만 지원됩니다.

ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

Name 형식 Description
info

object

추가 정보입니다.

type

string

추가 정보 유형입니다.

ErrorDetail

오류 세부 정보입니다.

Name 형식 Description
additionalInfo

ErrorAdditionalInfo[]

오류 추가 정보입니다.

code

string

오류 코드입니다.

details

ErrorDetail[]

오류 세부 정보입니다.

message

string

오류 메시지입니다.

target

string

오류 대상입니다.

ErrorResponse

오류 응답

Name 형식 Description
error

ErrorDetail

Error 개체.

Geofence

이 개체는 지오펜스 근접 호출에서 반환됩니다.

Name 형식 Description
expiredGeofenceGeometryId

string[]

요청의 사용자 시간을 기준으로 만료된 지오펜스의 기하 도형 ID 목록입니다.

geometries

GeofenceGeometry[]

좌표 위치를 포함하거나 위치 주위의 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 을 참조하세요. 모든 기능의 속성에는 기하 도형을 식별하는 데 사용되며 대/소문자를 구분하는 가 포함되어 geometryId야 합니다. 데이터 레지스트리 서비스에 대한 자세한 내용은 데이터 레지스트리를 만드는 방법을 참조하세요.

GeofenceMode

지오펜싱 비동기 이벤트 메커니즘의 모드입니다.

Name 형식 Description
All

string

모든 쿼리 결과를 Azure Maps 계정 이벤트 구독에 게시합니다.

EnterAndExit

string

사용자 위치가 교차 지오펜싱 보더로 간주되는 경우에만 결과를 게시합니다.

JsonFormat

원하는 응답 형식입니다. json 형식만 지원됩니다.

Name 형식 Description
json

string

JavaScript 개체 표기법 데이터 교환 형식