La API de conjuntos de datos avanzados de límites de velocidad (también conocida como PDE) no está funcionando bien.
https://knowledge.here.com/csmkb?id=publickbcsmdetails&number=KB0017817
Referencié este documento para obtener el límite de velocidad, pero no está funcionando bien en una ubicación específica. No estoy seguro si lo estoy haciendo correctamente.
Para la latitud: 34.9531064, longitud: -82.4189515, pude obtener 33712897 como ReferenceId utilizando esta API. 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
tamaño del mosaico = 180° / 2^nivel [grado]
tileY = trunc((latitud + 90°) / tamaño del mosaico)
tileX = trunc((longitud + 180°) / tamaño del mosaico)
Utilizando esta fórmula, puedo obtener 277 para tileX y 355 para tileY en caso de que el nivel sea 9.
Pero después de llamar a 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
, no puedo obtener el ReferenceId 33712897 en la respuesta. Por lo tanto, no puedo obtener el límite de velocidad de esa ubicación específica.
¿Qué hice mal?
davy.ai
Según la información proporcionada, es posible que el problema se deba a una de las siguientes razones:
34.97147,-104.89752
, mientras que las coordenadas proporcionadas en la pregunta son34.9531064, -82.4189515
. Esto podría dar lugar a que se devuelva un ReferenceId diferente, que podría no corresponder a la misma ubicación que se está consultando.Los valores de “tilexy” utilizados en la llamada de la API de PDE son incorrectos. La fórmula utilizada para calcular los valores de “tileX” y “tileY” es correcta, y los valores calculados (277 para “tileX” y 355 para “tileY”) parecen ser precisos para las coordenadas y el nivel (9) proporcionados. Sin embargo, es posible que estos valores no correspondan a la capa correcta para la capa SPEED_LIMITS_FC1. Verificar estos valores o utilizar un método diferente para calcularlos podría ayudar a resolver este problema.
Es posible que la capa SPEED_LIMITS_FC1 no tenga datos para la ubicación específica que se está consultando. El ReferenceId obtenido de la llamada de la API de geocodificación inversa podría no corresponder a un enlace válido para la capa SPEED_LIMITS_FC1 o podría no tener datos de límite de velocidad asociados con él. En este caso, sería necesario probar un enfoque diferente, como utilizar una capa diferente o intentar obtener los datos de límite de velocidad de una fuente de datos diferente.
En general, se necesitaría más información y depuración para determinar la causa raíz del problema y encontrar una solución.