Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

194
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda