Spatial - Post Geofence
使用 取得地理柵欄座標的鄰近性。
Post Geofence
API 是 HTTP POST
要求,可擷取與所提供地理柵欄或一組柵欄的座標鄰近性。 使用 POST
要求時,您不需要事先上傳柵欄數據,而是提供您在查詢參數中追蹤的物件位置,以及後續要求本文中的柵欄或一組柵欄數據。 如需地理柵欄數據格式的詳細資訊,請參閱 地理柵欄 GeoJSON 數據。 回應將包含地理柵欄外緣距離的相關信息。 負值表示座標位於柵欄內部,而正值表示其位於柵欄之外。
此 API 可用於各種案例,包括資產追蹤、車隊管理,或設定行動物件的警示。
API 支援 與事件方格整合。 isAsync 參數是用來啟用與事件方格的整合, (預設為停用) 。
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 參數
名稱 | 位於 | 必要 | 類型 | Description |
---|---|---|---|---|
format
|
path | True |
所需的回應格式。 僅支援 |
|
geography
|
path | True |
string |
Azure 地圖服務帳戶的位置。 有效值為 (美國東部、美國中西部、美國西部 2) 和歐盟 (北歐、西歐) 。 要求中提供 時 |
api-version
|
query | True |
string |
Azure 地圖服務 API 的版本號碼。 |
device
|
query | True |
string |
裝置的識別碼 |
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。 |
要求標頭
名稱 | 必要 | 類型 | Description |
---|---|---|---|
x-ms-client-id |
string |
指定哪個帳戶與 Microsoft Entra ID 安全性模型搭配使用。 它代表 Azure 地圖服務帳戶的唯一標識碼,而且可以從 Azure 地圖服務管理平面帳戶 API 擷取。 若要在 Azure 地圖服務中使用 Microsoft 專案標識碼安全性,請參閱下列 文章 以取得指引。 |
要求本文
名稱 | 必要 | 類型 | Description |
---|---|---|---|
features | True |
包含有效 |
|
type | True |
string:
Feature |
指定 |
回應
名稱 | 類型 | Description |
---|---|---|
200 OK |
確定 異步呼叫的回應和 Event Grid 事件數據中有 X-Correlation-id 標頭值。 這有助於將異步呼叫的回應與對應的 Event Grid 事件相互關聯。 標題 X-Correlation-id: string |
|
Other Status Codes |
發生意外錯誤。 |
安全性
AADToken
這些是 Microsoft Entra OAuth 2.0 流程。 與 Azure 角色型存取控制 配對時,可用來控制 Azure 地圖服務 REST API 的存取。 Azure 角色型訪問控制可用來指定一或多個 Azure 地圖服務資源帳戶或子資源的存取權。 任何使用者、群組或服務主體都可以透過內建角色或由一或多個 Azure 地圖服務 REST API 許可權所組成的自定義角色來授與存取權。
若要實作案例,建議您檢視 驗證概念。 總而言之,此安全性定義會透過能夠針對特定 API 和範圍進行訪問控制的物件,提供將應用程式模型化 () 的解決方案。
備註
- 此安全性定義 需要使用
x-ms-client-id
標頭來指出應用程式要求存取權的 Azure 地圖服務資源。 這可以從 地圖管理 API 取得。
Authorization URL
專屬於 Azure 公用雲端實例。 主權雲端具有唯一的授權 URL,Microsoft Entra ID 設定。
* 透過 Azure 入口網站、PowerShell、CLI、Azure SDK 或 REST API,從 Azure 管理平面設定 Azure 角色型存取控制。
* 使用 Azure 地圖服務 Web SDK 可讓您針對多個使用案例設定應用程式。
- 如需Microsoft身分識別平臺的詳細資訊,請參閱 Microsoft身分識別平臺概觀。
類型:
oauth2
Flow:
implicit
授權 URL:
https://login.microsoftonline.com/common/oauth2/authorize
範圍
名稱 | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
這是透過 Azure 入口網站、PowerShell、CLI、Azure SDK 或 REST API 透過 Azure 管理平面建立 Azure 地圖服務資源 時所佈建的共用密鑰。
使用此金鑰時,任何應用程式都會獲得存取所有 REST API 的授權。 換句話說,這些目前可視為發行帳戶的主要密鑰。
對於公開的應用程式,我們建議使用 Azure 地圖服務 REST API 的伺服器對伺服器存取,以便安全地儲存此密鑰。
類型:
apiKey
位於:
header
SAS Token
這是透過 Azure 入口網站、PowerShell、CLI、Azure SDK 或 REST API,從 Azure 地圖服務資源 上的列出 SAS 作業建立的共用存取簽章令牌。
使用此令牌時,任何應用程式都有權使用 Azure 角色型訪問控制進行存取,並更精細地控制到期、速率和區域 (特定令牌的使用) 。 換句話說,SAS 令牌可用來允許應用程式以比共用密鑰更安全的方式來控制存取。
對於公開的應用程式,我們建議在 地圖帳戶資源 上設定允許的來源特定清單,以限制轉譯濫用,並定期更新 SAS 令牌。
類型:
apiKey
位於:
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
}
定義
名稱 | Description |
---|---|
Error |
資源管理錯誤其他資訊。 |
Error |
錯誤詳細數據。 |
Error |
錯誤回應 |
Geofence |
此物件會從地理柵欄鄰近呼叫傳回。 |
Geofence |
地理柵欄幾何。 |
Geofence |
地理柵欄異步事件機制的模式。 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Geo |
有效的 |
Json |
所需的回應格式。 僅支援 |
ErrorAdditionalInfo
資源管理錯誤其他資訊。
名稱 | 類型 | Description |
---|---|---|
info |
object |
其他資訊。 |
type |
string |
其他信息類型。 |
ErrorDetail
錯誤詳細數據。
名稱 | 類型 | Description |
---|---|---|
additionalInfo |
錯誤其他資訊。 |
|
code |
string |
錯誤碼。 |
details |
錯誤詳細資料。 |
|
message |
string |
錯誤訊息。 |
target |
string |
錯誤目標。 |
ErrorResponse
錯誤回應
名稱 | 類型 | Description |
---|---|---|
error |
error 物件。 |
Geofence
此物件會從地理柵欄鄰近呼叫傳回。
名稱 | 類型 | Description |
---|---|---|
expiredGeofenceGeometryId |
string[] |
地理柵欄的幾何標識符清單,該地理柵欄相對於要求中的用戶時間到期。 |
geometries |
列出包含該座標位置或在該位置與 searchBuffer 周圍重疊的柵欄幾何。 |
|
invalidPeriodGeofenceGeometryId |
string[] |
地理柵欄的幾何標識符清單,該地理柵欄在要求中相對於用戶時間的無效期間。 |
isEventPublished |
boolean |
如果至少有一個事件發佈到 Azure 地圖服務事件訂閱者,則為 True。如果沒有事件發佈到 Azure 地圖服務事件訂閱者,則為 False。 只有當 'isAsync' 查詢參數設定為 true 時,才會在響應中呈現此專案。 |
GeofenceGeometry
地理柵欄幾何。
名稱 | 類型 | Description |
---|---|---|
deviceId |
string |
裝置的識別碼。 |
distance |
number |
除了使用特殊值 -999/999 以外的特殊值 -999/999 以外,從座標到地理 (柵欄最接近公尺框線的距離) 。 正值表示座標在地理柵欄外。 如果座標位在地理柵欄外,但與地理柵欄邊界的最短距離超過 searchBuffer 的值,則該值為 999。 負數表示座標在地理柵欄內。 如果座標位在多邊形內,但與地理柵欄邊界的最短距離超過 searchBuffer 的值,則該值為 -999。 值為 999 表示座標在地理柵欄外是極可信的。 值為 -999 表示座標在地理柵欄內是極可信的。 |
geometryId |
string |
唯一標識碼會識別幾何。 |
nearestLat |
number |
幾何之最接近點的緯度。 |
nearestLon |
number |
幾何之最接近點的經度。 |
nearestZ |
number |
2D 立體化幾何上最接近點的海位。 只有在要求中提供 『zInMeter』 的值時,才會在響應中呈現。 |
udId |
string |
建立 數據登錄 時用來上傳有效 GeoJSON FeatureCollection 物件的唯一標識符。 如需詳細資訊 ,請參閱 RFC 7946 。 所有特徵的屬性都應該包含 |
GeofenceMode
地理柵欄異步事件機制的模式。
名稱 | 類型 | Description |
---|---|---|
All |
string |
將所有查詢結果發佈至 Azure 地圖服務帳戶事件訂用帳戶。 |
EnterAndExit |
string |
只有在將使用者位置視為跨地理柵欄面板器時,才會發佈結果。 |
GeoJsonFeature
有效的 GeoJSON Feature
物件類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
featureType |
string |
功能的類型。 值取決於目前功能所屬的數據模型。 某些數據模型可能會有空的值。 |
geometry | GeoJsonGeometry: |
有效的 |
id |
string |
功能的標識碼。 |
type |
string:
Feature |
指定 |
GeoJsonFeatureCollection
有效的 GeoJSON FeatureCollection
物件類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
features |
包含有效 |
|
type |
string:
Feature |
指定 |
GeoJsonGeometry
有效的 GeoJSON
geometry 物件。 此類型必須是七個有效的 GeoJSON 幾何類型之一 - Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon 和 GeometryCollection。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
type |
Geo |
指定 |
GeoJsonGeometryCollection
有效的 GeoJSON GeometryCollection
物件類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
geometries | GeoJsonGeometry[]: |
包含有效的 |
type |
string:
Geometry |
指定 |
GeoJsonLineString
有效的 GeoJSON LineString
幾何類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
幾何座標 |
type |
string:
Line |
指定 |
GeoJsonMultiLineString
有效的 GeoJSON MultiLineString
幾何類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
幾何座標 |
type |
string:
Multi |
指定 |
GeoJsonMultiPoint
有效的 GeoJSON MultiPoint
幾何類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
幾何座標 |
type |
string:
Multi |
指定 |
GeoJsonMultiPolygon
有效的 GeoJSON MultiPolygon
物件類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
包含有效 |
type |
string:
Multi |
指定 |
GeoJsonPoint
有效的 GeoJSON Point
幾何類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
|
type |
string:
Point |
指定 |
GeoJsonPolygon
有效的 GeoJSON Polygon
幾何類型。 如需詳細資訊 ,請參閱 RFC 7946 。
名稱 | 類型 | Description |
---|---|---|
coordinates |
number[] |
|
type |
string:
Polygon |
指定 |
JsonFormat
所需的回應格式。 僅支援 json
格式。
名稱 | 類型 | Description |
---|---|---|
json |
string |