Share via


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 パラメーター

名前 / 必須 説明
format
path True

JsonFormat

応答の目的の形式。 サポートされているのは json 形式のみです。

geography
path True

string

Azure Maps アカウントの場所。 有効な値は、us (米国東部、米国中西部、米国西部 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。

isAsync
query

boolean

true の場合、要求は非同期イベント メカニズムを使用します。false の場合、要求は同期され、イベントはトリガーされません。 既定値は false です。

mode
query

GeofenceMode

ジオフェンシング非同期イベント メカニズムのモード。

searchBuffer
query

number

結果の計算時に指定された座標に対してフェンスの境界の内側と外側を検索する距離を定義する、ジオフェンスの周囲のバッファーの半径 (メートル単位)。 最小値は 0、最大値は 500 です。 既定値は 50 です。

userTime
query

string

date-time

ユーザー要求時刻。 要求に表示されない場合、既定値は DateTime.UtcNow です。

z
query

number

通過する場所のメーターの海面。 このパラメーターを指定すると、2D 浮き出しジオフェンシングが適用されます。 例: 200。

要求ヘッダー

名前 必須 説明
x-ms-client-id

string

Microsoft Entra ID セキュリティ モデルと組み合わせて使用するアカウントを指定します。 Azure Maps アカウントの一意の ID を表し、Azure Maps管理プレーン アカウント API から取得できます。 Azure MapsでMicrosoft Entra IDセキュリティを使用するには、ガイダンスについては、次の記事を参照してください。

要求本文

名前 必須 説明
features True

GeoJsonFeature[]

有効な GeoJSON Feature オブジェクトの一覧を格納します。

type True string:

FeatureCollection

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトの種類のいずれかである必要があります。

応答

名前 説明
200 OK

Geofence

OK X-Correlation-id ヘッダー値は、非同期呼び出しの応答と Event Grid イベント データに存在します。 非同期呼び出しの応答を対応する Event Grid イベントと関連付けるのに役立ちます。

Headers

X-Correlation-id: string

Other Status Codes

ErrorResponse

予期しないエラーが発生しました。

セキュリティ

AADToken

これらは OAuth 2.0 フロー Microsoft Entraです。 Azure ロールベースのアクセス制御と組み合わせて使用すると、Azure Maps REST API へのアクセスを制御できます。 Azure ロールベースのアクセス制御は、1 つ以上のAzure Mapsリソース アカウントまたはサブリソースへのアクセスを指定するために使用されます。 REST API をAzure Mapsするための 1 つ以上のアクセス許可で構成される組み込みロールまたはカスタム ロールを使用して、ユーザー、グループ、またはサービス プリンシパルにアクセス権を付与できます。

シナリオを実装するには、 認証の概念を表示することをお勧めします。 要約すると、このセキュリティ定義は、特定の API とスコープに対するアクセス制御が可能なオブジェクトを使用してアプリケーションをモデル化するためのソリューションを提供します。

メモ

  • このセキュリティ定義では、 ヘッダーを使用して、x-ms-client-idアプリケーションがアクセスを要求しているリソースAzure Maps示す必要があります。 これは、 Maps 管理 API から取得できます。

Authorization URL 、Azure パブリック クラウド インスタンスに固有です。 ソブリン クラウドには、固有の承認 URL とMicrosoft Entra ID構成があります。 * Azure ロールベースのアクセス制御は、Azure portal、PowerShell、CLI、Azure SDK、または REST API を介して Azure 管理プレーンから構成されます。 * Azure Maps Web SDK を使用すると、複数のユース ケースに対してアプリケーションを構成ベースで設定できます。

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 portal、PowerShell、CLI、Azure SDK、または REST API を使用して Azure 管理プレーンを介してAzure Maps リソースを作成するときにプロビジョニングされる共有キーです。

このキーを使用すると、すべてのアプリケーションがすべての REST API にアクセスすることが許可されます。 つまり、これらは現在、発行先のアカウントのマスター キーとして扱うことができます。

一般に公開されているアプリケーションの場合、このキーを安全に格納できるAzure Maps REST API のサーバー間アクセスを使用することをお勧めします。

Type: apiKey
In: header

SAS Token

これは、Azure portal、PowerShell、CLI、Azure SDK、または REST API を介して Azure 管理プレーンを介して、Azure Maps リソースの List SAS 操作から作成される共有アクセス署名トークンです。

このトークンを使用すると、すべてのアプリケーションが Azure ロールベースのアクセス制御を使用してアクセスし、特定のトークンに使用される有効期限、レート、およびリージョンに対するきめ細かい制御が許可されます。 言い換えると、SAS トークンを使用して、アプリケーションが共有キーよりもセキュリティで保護された方法でアクセスを制御できます。

公開されているアプリケーションの場合、 Map アカウント リソース で許可される配信元の特定のリストを構成して、レンダリングの不正使用を制限し、SAS トークンを定期的に更新することをお勧めします。

Type: apiKey
In: header

PostGeofence

Sample Request

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"
      }
    }
  ]
}

Sample Response

{
  "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
}

定義

名前 説明
ErrorAdditionalInfo

リソース管理エラーの追加情報。

ErrorDetail

エラーの詳細。

ErrorResponse

エラー応答

Geofence

このオブジェクトは、ジオフェンス近接呼び出しから返されます。

GeofenceGeometry

ジオフェンシング ジオメトリ。

GeofenceMode

ジオフェンシング非同期イベント メカニズムのモード。

GeoJsonFeature

有効な GeoJSON Feature オブジェクト型。 詳細については、 RFC 7946 を参照してください。

GeoJsonFeatureCollection

有効な GeoJSON FeatureCollection オブジェクト型。 詳細については、 RFC 7946 を参照してください。

GeoJsonGeometry

有効な GeoJSON geometry オブジェクト。 この型は、有効な 7 つの GeoJSON ジオメトリ型 (Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection) のいずれかである必要があります。 詳細については、 RFC 7946 を参照してください。

GeoJsonGeometryCollection

有効な GeoJSON GeometryCollection オブジェクト型。 詳細については、 RFC 7946 を参照してください。

GeoJsonLineString

有効な GeoJSON LineString geometry 型。 詳細については、 RFC 7946 を参照してください。

GeoJsonMultiLineString

有効な GeoJSON MultiLineString geometry 型。 詳細については、 RFC 7946 を参照してください。

GeoJsonMultiPoint

有効な GeoJSON MultiPoint geometry 型。 詳細については、 RFC 7946 を参照してください。

GeoJsonMultiPolygon

有効な GeoJSON MultiPolygon オブジェクト型。 詳細については、 RFC 7946 を参照してください。

GeoJsonPoint

有効な GeoJSON Point geometry 型。 詳細については、 RFC 7946 を参照してください。

GeoJsonPolygon

有効な GeoJSON Polygon geometry 型。 詳細については、 RFC 7946 を参照してください。

JsonFormat

応答の目的の形式。 サポートされているのは json 形式のみです。

ErrorAdditionalInfo

リソース管理エラーの追加情報。

名前 説明
info

object

追加情報。

type

string

追加情報の種類。

ErrorDetail

エラーの詳細。

名前 説明
additionalInfo

ErrorAdditionalInfo[]

エラーの追加情報。

code

string

エラー コード。

details

ErrorDetail[]

エラーの詳細です。

message

string

エラー メッセージ。

target

string

エラーのターゲット。

ErrorResponse

エラー応答

名前 説明
error

ErrorDetail

error オブジェクト。

Geofence

このオブジェクトは、ジオフェンス近接呼び出しから返されます。

名前 説明
expiredGeofenceGeometryId

string[]

要求のユーザー時刻に対して期限切れになったジオフェンスのジオメトリ ID のLists。

geometries

GeofenceGeometry[]

座標が含まれるフェンス ジオメトリ、または位置の周りに searchBuffer が重なっているフェンス ジオメトリの一覧を示します。

invalidPeriodGeofenceGeometryId

string[]

要求のユーザー時間に対して無効な期間にあるジオフェンスのジオメトリ ID のLists。

isEventPublished

boolean

Azure Maps イベント サブスクライバーに対して少なくとも 1 つのイベントが発行されている場合は true、Azure Maps イベント サブスクライバーに対してイベントが発行されていない場合は false。 これは、'isAsync' クエリ パラメーターが true に設定されている場合にのみ、応答で表示されます。

GeofenceGeometry

ジオフェンシング ジオメトリ。

名前 説明
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

ジオフェンシング非同期イベント メカニズムのモード。

名前 説明
All

string

すべてのクエリ結果をアカウント イベント サブスクリプションAzure Maps発行します。

EnterAndExit

string

ユーザーの場所が交差ジオフェンシング ボーダーと見なされる場合にのみ、結果を公開します。

GeoJsonFeature

有効な GeoJSON Feature オブジェクト型。 詳細については、 RFC 7946 を参照してください。

名前 説明
featureType

string

機能の種類です。 値は、現在の特徴が含まれるデータ モデルによって異なります。 一部のデータ モデルには空の値が含まれる場合があります。

geometry GeoJsonGeometry:

有効な GeoJSON geometry オブジェクト。 この型は、有効な 7 つの GeoJSON ジオメトリ型 (Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection) のいずれかである必要があります。 詳細については、 RFC 7946 を参照してください。

id

string

機能の識別子。

type string:

Feature

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonFeatureCollection

有効な GeoJSON FeatureCollection オブジェクト型。 詳細については、 RFC 7946 を参照してください。

名前 説明
features

GeoJsonFeature[]

有効な GeoJSON Feature オブジェクトの一覧を格納します。

type string:

FeatureCollection

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonGeometry

有効な GeoJSON geometry オブジェクト。 この型は、有効な 7 つの GeoJSON ジオメトリ型 (Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection) のいずれかである必要があります。 詳細については、 RFC 7946 を参照してください。

名前 説明
type

GeoJsonObjectType

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonGeometryCollection

有効な GeoJSON GeometryCollection オブジェクト型。 詳細については、 RFC 7946 を参照してください。

名前 説明
geometries GeoJsonGeometry[]:

有効な GeoJSON geometry オブジェクトの一覧が含まれます。 GeoJSON の座標は x、y の順序 (経度、緯度) であることに注意してください。

type string:

GeometryCollection

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonLineString

有効な GeoJSON LineString geometry 型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

ジオメトリの GeoJson LineString 座標。

type string:

LineString

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonMultiLineString

有効な GeoJSON MultiLineString geometry 型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

ジオメトリの GeoJson MultiLineString 座標。

type string:

MultiLineString

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonMultiPoint

有効な GeoJSON MultiPoint geometry 型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

ジオメトリの GeoJson MultiPoint 座標。

type string:

MultiPoint

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonMultiPolygon

有効な GeoJSON MultiPolygon オブジェクト型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

有効な GeoJSON Polygon オブジェクトの一覧を格納します。 GeoJSON の座標は x、y 順 (経度、緯度) であることに注意してください。

type string:

MultiPolygon

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonPoint

有効な GeoJSON Point geometry 型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

Position 、2 つ以上の要素を持つ数値の配列です。 最初の 2 つの要素は 経度緯度であり、正確にはその順序です。 高度/標高 は、オプションの 3 番目の要素です。 詳細については、 RFC 7946 を参照してください。

type string:

Point

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

GeoJsonPolygon

有効な GeoJSON Polygon geometry 型。 詳細については、 RFC 7946 を参照してください。

名前 説明
coordinates

number[]

geometry 型の GeoJson Polygon 座標。

type string:

Polygon

型を指定します GeoJSON 。 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection、Feature、FeatureCollection の 9 つの有効な GeoJSON オブジェクトタイプのいずれかである必要があります。

JsonFormat

応答の目的の形式。 サポートされているのは json 形式のみです。

名前 説明
json

string

JavaScript オブジェクト表記データ交換形式