ガイドAPIリファレンス
ガイド

地理空間フィルタリングを使用する

この章では、地理空間フィルタリングの例を取り上げます。詳細については、「地理空間フィルター」を参照してください。

📘

地理空間フィルタリングは返されるアイテムに影響を与えますが、レスポンス形式は変更されません。このため、以下の例ではレスポンスデータは示されていません。「フローデータをリクエストする」および「インシデントデータをリクエストする」のレスポンスの例を参照してください。

ある場所の周囲半径内のフローまたはインシデントをリクエストする

円の地理空間フィルターを使用して、ある場所の周囲における特定の半径内の/flowまたは/incidentsをリクエストします。

たとえば、ドイツのベルリン周辺の半径2000メートル以内のフローをリクエストするとします。

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/flow?in=circle:52.50811,13.47853;r=2000&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

curl -X POST \
    "https://data.traffic.hereapi.com/v7/flow" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d "{
        "in": {
            "type": "circle",
            "center": {"lat": 52.50811, "lng": 13.47853},
            "radius": 2000
        },
        "locationReferencing": [
            "olr"
        ],
        "minJamFactor": 3,
        "maxJamFactor": 9,
        "functionalClasses": [
            1,
            2,
            3
        ],
        "advancedFeatures": [
            "deepCoverage"
        ]            
 }"

同じ場所でのインシデントをリクエストするには

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/incidents?in=circle:52.50811,13.47853;r=2000&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

curl -X POST \
     "https://data.traffic.hereapi.com/v7/incidents" \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d "{
         "in": {
             "type": "circle",
             "center": {"lat": 52.50811, "lng": 13.47853},
             "radius": 2000
         },
         "locationReferencing": [
             "olr"
         ],
         "functionalClasses": [
             4,
             5
         ],
         "criticality": [
             "critical",
             "major",
             "minor"
         ],
         "type": ["construction"],
         "earliestStartTime": 1637730069,
         "latestEndTime": 1704783973,
         "lang": "DE",
         "units": "metric"         
     }"

長方形のエリア内のフローまたはインシデントをリクエストする

バウンディングボックスの地理空間フィルターを使用して、長方形のバウンディングボックス内の/flowまたは/incidentsをリクエストします。

たとえば、ドイツのベルリンのエリアでフローをリクエストするとします。

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/flow?in=bbox:13.386969,52.527129,13.424134,52.549420&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

curl -X POST \
     "https://data.traffic.hereapi.com/v7/flow" \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d "{
         "in": {
             "type": "bbox",
             "west": 13.386969,
             "south": 52.527129,
             "east": 13.424134,
             "north": 52.549420
         },
         "locationReferencing": [
             "olr"
         ],
         "minJamFactor": 3,
         "maxJamFactor": 9,
         "functionalClasses": [
             1,
             2,
             3
         ],
         "advancedFeatures": [
             "deepCoverage"
         ]            
     }

同じ場所でのインシデントをリクエストするには

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/incidents?in=bbox:13.386969,52.527129,13.424134,52.549420&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

    curl -X POST \
         "https://data.traffic.hereapi.com/v7/incidents" \
         -H "Authorization: Bearer $TOKEN" \
         -H "Content-Type: application/json" \
         -d "{
             "in": {
                 "type": "bbox",
                 "west": 13.386969,
                 "south": 52.527129,
                 "east": 13.424134,
                 "north": 52.549420
             },
             "locationReferencing": [
                 "olr"
             ],
             "functionalClasses": [
                 4,
                 5
             ],
             "criticality": [
                 "critical",
                 "major",
                 "minor"
             ],
             "type": ["construction"],
             "earliestStartTime": 1637730069,
             "latestEndTime": 1704783973,
             "lang": "DE",
             "units": "metric"         
         }"

コリドー内のフローまたはインシデントをリクエストする

コリドーの地理空間フィルターを使用して、特定の幅のコリドー内の/flowまたは/incidentsをリクエストします。

ポリラインはフレキシブルポリラインで、コリドーの経由地を指定します。半径によって、経由地の両側までのコリドーの距離 (メートル単位) が決まります。つまり、半径が230メートルの場合、コリドーの幅は460メートルになります。

フレキシブルポリラインは、緯度と経度のペアのリストを特別にエンコードしたものです。各座標は整数に変換され、保持する小数点以下の桁数は精度で指定されます。精度が5の場合、緯度50.10228295010228になります。このような各整数は、ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_のセットから一連の文字に変換されます。そのため、最終的にポリライン全体がこれらの文字のみで構成された文字列で表されます。

例:

BFoz5xJ67i1B1B7PzIhaxL7Yは次のポリラインを表現しています。

50.1022829,8.6982122
50.1020076,8.6956695
50.1006313,8.6914960
50.0987800,8.6875156

詳細については、「フレキシブルポリライン」を参照してください。

コリドー内のフローをリクエストするには

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/flow?in=corridor:BFoz5xJ67i1B1B7PzIhaxL7Y;r=230&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

    curl -X POST \
     "https://data.traffic.hereapi.com/v7/flow" \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d "{
         "in": {
             "type": "corridor",
             "corridor": "BFoz5xJ67i1B1B7PzIhaxL7Y",
             "radius": 230
         },
         "locationReferencing": [
             "olr"
         ],
         "minJamFactor": 3,
         "maxJamFactor": 9,
         "functionalClasses": [
             1,
             2,
             3
         ],
         "advancedFeatures": [
             "deepCoverage"
         ]            
     }"

同じコリドーでインシデントをリクエストするには

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" "https://data.traffic.hereapi.com/v7/incidents?in=corridor:BFoz5xJ67i1B1B7PzIhaxL7Y;r=230&locationReferencing=olr"

または、次のようにPOSTリクエストを送信します。

    curl -X POST \
     "https://data.traffic.hereapi.com/v7/incidents" \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d "{
         "in": {
             "type": "corridor",
             "corridor": "BFoz5xJ67i1B1B7PzIhaxL7Y",
             "radius": 230
         },
         "locationReferencing": [
             "olr"
         ],
         "functionalClasses": [
             4,
             5
         ],
         "criticality": [
             "critical",
             "major",
             "minor"
         ],
         "type": ["construction"],
         "earliestStartTime": 1637730069,
         "latestEndTime": 1704783973,
         "lang": "DE",
         "units": "metric"
     }"

トポロジーセグメント参照を使用したリクエストフローまたはインシデント

地理空間フィルターのトポロジーセグメント参照を使用して、これらのセグメント参照と一致する/flowまたは/incidentsをリクエストします。

トポロジーセグメント参照は、HERE Map Contentトポロジーセグメントへの一連の参照によって位置を定義します。

詳細については、「トポロジーセグメント」を参照してください。

トポロジーセグメント参照のリストを含むフローをリクエストするには、次の手順を実行します。

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" -G 'https://data.traffic.hereapi.com/v7/flow' --data-urlencode 'in=segmentRef:$0::377894440:$1:190307851#-0..1,$0::377894440:$1:99994475#+0..1,$0::377894440:$1:484412450#+0..1,$0::377894441:$1:144195424#+0..1;rr=hrn:here:data::olp-here:rib-2:7334,here:cm:segment' --data-urlencode 'locationReferencing=olr'

または、次のようにPOSTリクエストを送信します。

 curl -X POST \
    "https://data.traffic.hereapi.com/v7/flow" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
        "in": {
            "type": "segmentRef",
            "useRefReplacements": true,
            "refReplacements": {
            "0": "hrn:here:data::olp-here:rib-2:7334",
            "1": "here:cm:segment"
            },
            "segments": [
                {"ref": "$0::377894440:$1:190307851#-0..1"},
                {"ref": "$0::377894440:$1:99994475#+0..1"},
                {"ref": "$0::377894440:$1:484412450#+0..1"},
                {"ref": "$0::377894441:$1:144195424#+0..1"}
            ]
        },
        "locationReferencing": [
            "olr"
        ],
        "criticality": [
            "critical",
            "major",
            "minor"
        ],
        "lang": "DE",
        "units": "metric"
    }'

同じセグメント参照のセットでインシデントをリクエストするには、次の手順を実行します。

次のようにGETリクエストを送信します。

curl -H "Authorization: Bearer $TOKEN" -G 'https://data.traffic.hereapi.com/v7/incidents' --data-urlencode 'in=segmentRef:$0::377894440:$1:190307851#-0..1,$0::377894440:$1:99994475#+0..1,$0::377894440:$1:484412450#+0..1,$0::377894441:$1:144195424#+0..1;rr=hrn:here:data::olp-here:rib-2:7334,here:cm:segment' --data-urlencode 'locationReferencing=olr' 

または、次のようにPOSTリクエストを送信します。

 curl -X POST \
    "https://data.traffic.hereapi.com/v7/incidents" \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
        "in": {
            "type": "segmentRef",
            "useRefReplacements": true,
            "refReplacements": {
            "0": "hrn:here:data::olp-here:rib-2:7334",
            "1": "here:cm:segment"
            },
            "segments": [
                {"ref": "$0::377894440:$1:190307851#-0..1"},
                {"ref": "$0::377894440:$1:99994475#+0..1"},
                {"ref": "$0::377894440:$1:484412450#+0..1"},
                {"ref": "$0::377894441:$1:144195424#+0..1"}
            ]
        },
        "locationReferencing": [
            "olr"
        ],
        "criticality": [
            "critical",
            "major",
            "minor"
        ],
        "lang": "DE",
        "units": "metric"
    }'