仮想的なフェンス アセットの距離と検索半径 アセット位置をカバーする、またはアセット位置に近い各ポリゴンジオフェンスについて、 Fleet Telematics Geofencing はジオフェンスジオメトリとこのジオメトリまでのアセットの距離を戻します。
アセットの距離は、次の要因によって影響を受けます。
アセットがジオフェンスの外側にあります。この距離は、ジオフェンスの最も近い境界までの直線です。 これは、常にラインジオフェンスおよびポイントジオフェンスの場合です。 アセットがジオフェンスの内側にあります。この距離は、ポリゴンの最も近い境界までの直線で、負の符号が付きます。 アセットが検索範囲外にあります。ジオフェンスが応答に一覧表示されていません。 アセットはポリゴンの内側にありますが、検索半径の境界からは離れています。「奥まで内側」を示す特別な値が返されます。 図 1. ジオフェンスの状況 アプリケーションでは、アセットの距離を使用して、特定の距離のしきい値に基づいて、さまざまな重大度のイベントを生成できます。 アセットがジオフェンスの境界線に沿って移動している場合(アセットの距離を大幅に変更せずにジオフェンスに頻繁に出入りする場合など)、不要なイベントを抑制することもできます。
パフォーマンス上の理由から、アセットの距離は直線的な距離にすぎません。走行距離や走行時間とは異なります。 アセットの距離は約 20 km に制限されているため、距離は次のいずれかになります。
最も近い境界線から 250m のポリゴン内にあります 最も近い境界線から 20km 以上離れた多角形の中にあります ジオフェンスの外側、最も近いボーダーから 333m ジオフェンスの外側、最も近い境界から 20km 以上 ( アセットが検索半径の外側にある場合、この値は一覧にないすべてのジオフェンスに適用されます ) ジオフェンスの境界線に沿って出入りしたり、ちらつくなどのイベント、またはジオフェンスに再入力しても、アセットの距離だけが明示的に応答されません。 同じことが、一連のイベントにも適用されます。たとえば、アセットがジオフェンスに 3 度目に入った場合や、同じ日に 2 度目に出発した場合などです。
メモ 現在のところ、 Fleet Telematics Geofencing ではアセットの ID または登録は不要で、サポートもされていません。
リクエストの頻度 アセットの位置を囲むジオフェンスの Fleet Telematics Geofencing に対するクエリの頻度に制限はありません。 デバイス、ネットワーク、およびサービスの負荷を効率的に管理するには、アプリケーションで API によって返された距離を使用し、不要なコールを抑制する必要があります。 特に、アセットの仮想的なフェンスステータスが最後のクエリ以降にあまり変更されなかったことが明らかな場合に当てはまります。 例えば、最も近い形状の距離が 3.5 km で、車両が 100 メートル移動してからジオフェンスを左または入力できなかった場合は、 API の問い合わせ頻度を減らすだけで十分です。
ジオフェンスジオメトリを取得します Fleet Telematics Geofencing は、形状を表示または修正するために、アプリケーションが形状自体を認識していることを前提として動作します。 このため、クエリは、ネットワークトラフィックを削減し、デバイスとサービスの速度を上げるために、完全なジオフェンスジオメトリではなく、各ジオメトリの ID のみを返します。
デバイスおよびアセット管理センターでのシンプルな表示をサポートするために、 API はオプションで、検索半径内にあるジオメトリの関連するフラグメントを返すことができます。 ただし、これによって過剰な負荷が発生する可能性があります。 負荷を効率的に管理するには、最近表示されたジオメトリのジオメトリ部分をキャッシュし、次の場合にのみジオメトリのフラグメントを要求するクエリーを再送信する必要があります。
キャッシュされていないジオメトリ ID が返されます アセットは、最後にキャッシュされたジオメトリの断片化以降、頻繁に移動されています レイヤーの使用と多角形の操作 各ジオフェンスポリゴン、ポイント、またはポリラインは、正確に 1 つのレイヤーに割り当てられます。 複数のレイヤーを作成できます。 レイヤーには、ポリゴン、ポイント、またはポリラインのいずれかの 1 つのタイプのジオメトリのみを含めることができます。 これにより、フェンスタイプまたはトピック、またはアセットグループごとにジオフェンスをグループ化できます。
可能な場合は、レイヤーのすべてのポリゴンを 1 つのバッチで送信または更新します。 Fleet Telematics Geofencing では、個々のポリゴンの追加または変更はサポートされていますが、ストレージタイプが「更新可能」の場合にのみサポートされ、「読み取り専用」の場合にはサポートされません。
各顧客は、レイヤーごとに多数のジオメトリを持つ複数のレイヤーを作成できます。 最大値については、 Fleet Telematics カスタム位置リソース serviceconfiguration.json を参照してください。 制限を延長する必要がある場合は、 TCS (テクニカル カスタマー サポート) にお問い合わせください。
ジオフェンスを地図レイヤーに分散する方法 ユーザー、デバイス、車ごとに個別のジオフェンスレイヤーを作成することは明らかですが、このサービスでは効率的ではありません。 通常、同じ種類のジオフェンス ( 空間的範囲、更新頻度、座標解像度 ) を 1 つのレイヤーにまとめる必要があります。 各ジオフェンスには、適用するアセット(および時間枠などの条件)を記述する属性(または複数)が含まれている必要があります。そのため、顧客のアプリケーションでは、車両 / ユーザーに適用するフェンスをフィルタリングできます。 バックエンドサービスである Fleet Telematics Geofencing は、通常、ユーザー / デバイスから直接呼び出されることはありません。そのため、異なる車両 / ユーザーのジオフェンスを顧客のアプリケーションに戻すことは、プライバシーの問題にはなりません。 また、さまざまなジオメトリタイプ ( 円とポリゴン ) を別々のレイヤーに保存する必要があります。
ポリゴン識別子とアトリビューション Fleet Telematics Geofencing はデータの一般的なストレージとして使用することを意図していませんが、 API はリクエストに応答するためにジオシェイプへのアクセス権を持っている必要があります。 これらの各図形は、一意の識別子に関連付けられている必要があります。 Fleet Telematics Geofencing では、これらの ID も応答に含まれています。
これらの ID を割り当てる 1 つの一般的な方法では、次のように単純なジオメトリ識別子を使用します。
polygon ID
多角形フェンスの場合 link ID
道路、鉄道、川、その他の線形フェンスに適しています point ID
ポイント store ID
フェンスの場合はまたは 次の例では、列 ID によって、さまざまな有名な場所の近くにあるポリゴンが一意に識別されます。
ID NAME ABBR WKT
1 AlexanderPlatz DEU POLYGON(( 13.41252 52.52228 , 13.41426 52.5221 , 13.41522 52.52113 , 13.41227 52.51981 , 13.41252 52.52228 ))
2 BrandenburgGate DEU POLYGON(( 13.38021 52.51668 , 13.37987 52.51678 , 13.37984 52.5163 , 13.37984 52.5163 , 13.38021 52.51668 ))
3 RoyalObservatory UK POLYGON(( - 0.00156 51.47778 , - 0.00142 51.47796 , - 0.00114 51.47776 , - 0.00172 51.4777 , - 0.00156 51.47778 ))
リソースを使用 search/proximity
して、地理座標がレイヤーにロードされたジオシェイプの指定した半径内にあるかどうかを確認する場合 key_attributes
は、 request パラメーターを使用して、応答でジオシェイプをグループ化する方法を定義します。 たとえば、上記の例をレイヤーに読み込み key_attributes=NAME
、リクエストでを指定した場合、名前列の各値が一意であるため、半径内のジオシェイプが応答に個別に一覧表示されます。 この場合、応答は次のようになります。
{
"geometries" : [
{
"attributes" : {
"ID" : "2" ,
"GEOMETRY_ID" : "1" ,
"NAME" : "BrandenburgGate" ,
"ABBR" : "DEU"
} ,
"distance" : 640.79 ,
"nearestLat" : 52.51668 ,
"nearestLon" : 13.38021 ,
"geometry" : "MULTIPOLYGON(((13.38021 52.51668,13.37984 52.5163,13.37987 52.51678,13.38021 52.51668)))"
} ,
{
"attributes" : {
"ID" : "1" ,
"GEOMETRY_ID" : "0" ,
"NAME" : "AlexanderPlatz" ,
"ABBR" : "DEU"
} ,
"distance" : 1641.35 ,
"nearestLat" : 52.51981 ,
"nearestLon" : 13.41227 ,
"geometry" : "MULTIPOLYGON(((13.41252 52.52228,13.41426 52.5221,13.41522 52.52113,13.41227 52.51981,13.41252 52.52228)))"
}
] ,
"response_code" : "200 OK"
}
ただしattributes=ABBR
、同じ状況で key_in を指定すると、応答によって、指定された abbr 値に一致する行の要求に一致する結果がグループ化されます。 つまり、チェック ABBR=DEU
する地理座標が両方の範囲内にある場合、結果には 1 行目と 2 行目が含まれます。 この場合、応答は次のようになります。
{
"geometries" : [ {
"attributes" : {
"ID" : "1" ,
"GEOMETRY_ID" : "0" ,
"NAME" : "AlexanderPlatz" ,
"ABBR" : "DEU"
} ,
"distance" : 640.79 ,
"nearestLat" : 52.51668 ,
"nearestLon" : 13.38021 ,
"geometry" : "MULTIPOLYGON(((13.38021 52.51668,13.37984 52.5163,13.37987 52.51678,13.38021 52.51668)),((13.41252 52.52228,13.41426 52.5221,13.41522 52.52113,13.41227 52.51981,13.41252 52.52228)))"
} ] ,
"response_code" : "200 OK"
}
次のようにして、図形に 4 行目を追加します。
4 Reichstag BER POLYGON(( 13.37494 52.51885 , 13.37485 52.51948 , 13.3755 52.51817 , 13.3744 52.51757 , 13.37494 52.51885 ))
API は、地理座標が範囲内にあるが、値が分離されているために別のグループにある場合、このジオシェイプを応答に含めます。 この場合、応答は次のようになります。
{
"geometries" : [
{
"attributes" : {
"ID" : "1" ,
"GEOMETRY_ID" : "0" ,
"NAME" : "AlexanderPlatz" ,
"ABBR" : "DEU"
} ,
"distance" : 640.79 ,
"nearestLat" : 52.51668 ,
"nearestLon" : 13.38021 ,
"geometry" : "MULTIPOLYGON(((13.38021 52.51668,13.37984 52.5163,13.37987 52.51678,13.38021 52.51668)),((13.41252 52.52228,13.41426 52.5221,13.41522 52.52113,13.41227 52.51981,13.41252 52.52228)))"
} ,
{
"attributes" : {
"ID" : "4" ,
"GEOMETRY_ID" : "3" ,
"NAME" : "Reichstag" ,
"ABBR" : "BER"
} ,
"distance" : 871.25 ,
"nearestLat" : 52.51817 ,
"nearestLon" : 13.3755 ,
"geometry" : "MULTIPOLYGON(((13.37494 52.51885,13.37485 52.51948,13.3755 52.51817,13.3744 52.51757,13.37494 52.51885)))"
}
] ,
"response_code" : "200 OK"
}
つまり、これらの列の値は、 SQL の GROUP BY 関数と同じ方法で使用できます。
任意の属性をジオシェイプに関連付けて、アプリケーションで使用することもできます。 API には、レスポンスのジオシェイプに関連付けられている値がすべて含まれています。 これらのカスタム属性は、アプリケーションが必要とする属性にのみ制限する必要があります。 たとえば、デバイスまたは管理センターがローカルに保存していないが、表示名やフェンスジオメトリの優先度などのクエリーから取得する必要がある情報が含まれます。
ジオメトリとともに大量のデータを保存する必要がある場合、つまりジオメトリのサイズ(バイト単位)が追加データのサイズ以上である場合は、 TCS (テクニカル カスタマー サポート) に連絡してください。
レイヤーをジオフェンスとしてマップします ジオフェンスはカスタム定義のオブジェクトにすることができますが、 Fleet Telematics Geofencing ではすべての地図コンテンツでジオフェンスを使用することもできます。 例 :
森林、建物、湖、海、公園、 病院、ビーチ、または飛行場。 そのため、対応する Fleet Telematics の API 地図ポリゴンレイヤーにジオフェンスを適用します。 アセットがレストラン、ホテル、駅、ガソリンスタンドの近くにあるかどうかを確認してください。 そのため、対応する Fleet Telematics の API 主要施設( POI )レイヤーにジオフェンスを追加します。 アセットが鉄道、細い川、または国境線のいずれかにあるか、またはその近くにあるかを確認してください。 そのため、対応する Fleet Telematics の API 地図作成ラインレイヤーにジオフェンスを適用します。 資産が高速道路、中央政府道路、小路、または歩行者専用道路にあるかどうかを確認します。 そのため、対応する Fleet Telematics の API 道路ジオメトリ層にジオフェンスを当て、 Fleet Telematics の API 道路情報層に参加します。 使用可能なレイヤーについては、『 Fleet Telematics API 開発者ガイドレイヤーの編集』を参照してください。 マップ上の仮想的なフェンスは、カスタムポリゴンの仮想的なフェンスと同じリソースを使用しますが、サービスエンドポイントは異なります。