-1

https://knowledge.here.com/csm_kb?id=public_kb_csm_details&number=KB0017817

速度制限を取得するためにこのドキュメントを参照しましたが、特定の場所ではうまく機能していません。私は正しいことをしているかどうかわかりません。

緯度: 34.9531064、経度: -82.4189515 の場合、この API を使用して ReferenceId の 33712897 を取得できました。 https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json?prox=34.97147,-104.89752&mode=retrieveAddresses&maxresults=1&apiKey={{YOUR_API_KEY}}&locationattributes=linkInfo

tile size = 180° / 2^level [degree] tileY = trunc((latitude + 90°) / tile size) tileX = trunc((longitude + 180°) / tile size)

この式を使用すると、レベルが 9 の場合に tileX で 277、tileY で 355 を取得できます。

しかし、 を呼び出した後https://pde.api.here.com/1/tiles.json?layers=SPEED_LIMITS_FC1&levels=9&tilexy=213,355&app_id={{YOUR_APP_ID}}&app_code={{YOUR_APP_CODE}}&meta=1&callback=onLoadPDETiles、応答で 33712897 ReferenceId を取得できません。その結果、その特定の場所の速度制限を取得できません。

私は何を間違えましたか?

4

2 に答える 2

1

リンクの機能クラスを考慮するのを忘れたため、最後のリクエストを作成する方法は機能しません。このため、layerslevel、およびtilexyパラメーターが正しくありません。

リバース ジオコーディング レスポンスの linkInfo オブジェクトは、リンク 33712897 の機能クラス = 5 を示しているため、レイヤーSPEED_LIMITS_FC5SPEED_LIMITS_FC1ではなく呼び出す必要があります。また、ここで入手可能なドキュメントによると、level=13 を使用する必要があります。

道路リンク ベースのレイヤーの場合、レベルは常に「道路機能クラス」+ 8 です。

これは、計算されたタイルが 4441,5686 になることを意味し、リクエストは次のようになります。

https://pde.api.here.com/1/tiles.json?
layers=SPEED_LIMITS_FC5&
levels=13&
tilexy=4441,5686&
app_id={{YOUR_APP_ID}}&
app_code={{YOUR_APP_CODE}}&
meta=1

ここで、選択したリンクには HERE マップの速度制限がないため、このリクエストは空の結果を返しますが、少なくともリクエストは適切に構成されています。たとえば、まったく同じリクエスト構造を使用して、リンク 17748385 (tilexy=3787,5584) の座標を 32.705470,-96.784640 に変更すると、空でない結果が得られます。

于 2021-12-24T00:04:29.750 に答える