Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
La función de salida de HERE Maps API genera demasiadas veces

tengo algunos problemas con la API de mapas HERE que genera los datos que solicito demasiadas veces. Necesito que emita solo una vez cada 10 segundos, sin embargo, lo está haciendo muchas más veces que eso.

El código que tengo aquí es el siguiente:

 function getMapCorners() { var mapView = map.getViewModel(); var mapCorners = mapView.b.bounds.cb.X; var corners = [mapCorners[9], mapCorners[10], mapCorners[3], mapCorners[4]]; console.log(corners); } map.addEventListener("mapviewchange", function () { setTimeout(getMapCorners, 10000); });

Necesito tomar estas coordenadas específicas ya que esto se está alimentando a otra API que está creando marcadores en el mapa en áreas específicas. Al acercar, espera 10 segundos para ejecutar la función, pero luego arroja los cambios de coordenadas para cada cambio en el modelo de vista del mapa durante esos 10 segundos.

La otra API tiene un límite de solicitudes de 100 cada 15 minutos. Así que necesito que esto cambie para que ejecute la función cada 10 segundos, y solo generará la información para el modelo de vista final cuando se ejecute la función.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Primero, no use el nombre interno de objetos como .b.bounds.cb.X - b, cb, X están definidos por la compilación de la biblioteca js y se cambiarán para la nueva versión de JS API. Utilice para ello un nombre de métodos y objetos descritos en la documentación: https://developer.here.com/documentation/maps/3.1.29.0/api_reference/H.map.ViewModel.html#getLookAtData como:

 var mapCorners = map.getViewModel().getLookAtData().bounds.getBoundingBox();

En segundo lugar, el evento de mapa 'mapviewchange' se ejecuta varias veces durante la interacción con el mapa, por lo tanto, se obtiene la ejecución de varias veces de la función getMapCorners. Sugerencia para lograr lo que quieres:

 function getMapCorners() { console.log("getMapCorners!!!", map.getViewModel().getLookAtData().bounds.getBoundingBox()); map.addEventListener("mapviewchange", onMapViewChange); } function onMapViewChange() { map.removeEventListener("mapviewchange", onMapViewChange); setTimeout(getMapCorners, 10000); }

Consulte el código completo allí en https://jsfiddle.net/1m8fvLjy/1/

about 4 years ago · Juan Pablo Isaza Report

0

Si desea ejecutar getMapCorners una vez cada 10 segundos, haga lo siguiente:

 function doEveryTenSeconds(){ getMapCorners(); setTimeout(doEveryTenSeconds, 10000); } doEveryTenSeconds();
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!