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

184
Visualizações
Tengo una lista de ubicaciones de 300000 elementos y quiero visualizarlos en mi localhost

Básicamente, lo que tengo es un dato de geolocalización (longitud y latitud) de 300.000 ubicaciones. Tengo diferentes atributos adjuntos a los datos y es de aprox. 32 MB. Leerlo a través de js y poner marcadores en Google Maps es lo que he intentado, y funciona bien cuando solo pongo de 25 a 2500 marcadores en mi mapa, realmente no puedo poner todas mis ubicaciones a la vez. Eventualmente, quiero poder filtrar marcadores a través de los atributos, etc. Las ubicaciones están todas en una ciudad, por lo que podría usar mi propio mapa o algo así.

Lo que quiero preguntar/aprender es ¿tiene alguna solución mejor para esta situación en particular?

Aquí está mi código.

 function initJS() { var promise = getData(); var locations1; var locations; promise.success( (data) => { locations1 = parseData(data); locations = locations1.filter(location => { return location.DuyuruTipi == "16"; }); //initializing google map map = new google.maps.Map(document.getElementById("map"), { center: { lat: latitude, lng:longtitude}, zoom: zooming, }); //creating a marker const svgMarker = { // path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z", url: "./assets/marker.svg", size: new google.maps.Size(20,20), scaledSize: new google.maps.Size(20,20), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(10, 10), }; for (var i = 0; i < locations.length; i++) { //locations.length // init markers var marker = new google.maps.Marker({ position: { lat: parseFloat(locations[i]["YCoor"]), lng: parseFloat(locations[i]["XCoor"])}, map: map, label: locations[i]["DuyuruId"], icon: svgMarker }); console.log(locations[i]["DuyuruTipi"]); marker.duyurutipi = locations[i]["DuyuruTipi"]; marker.kazatipi = locations[i]["KazaTipi"]; marker.vsegid = locations[i]["vSegID"]; markers.push(marker); } });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Mostrar 300000 puntos directamente en el mapa no es el enfoque correcto y no funcionará bien, especialmente a medida que se agreguen más conjuntos de datos a su mapa.

Además, enviar 32 MB de datos o más al navegador es una mala práctica, incluso para una aplicación de mapas web. Si prueba, por ejemplo, Google Maps con el panel de red abierto, verá que apenas superará unos pocos MB, incluso después de bastante tiempo usándolo.

Hay un par de enfoques que los mapeadores web toman para contrarrestar esto:

  1. Utilice un servicio como Geoserver o Mapserver para dividir los datos en "fragmentos" en función de lo que se encuentre en la ventana gráfica de los clientes del mapa (capas abiertas, en su caso, según su respuesta). Esta es la mejor opción si potencialmente podría tener muchas capas o mapas base en el futuro, pero es mucho trabajo instalarlo y configurarlo.
  2. Escriba su propia implementación de lo anterior en su back-end. Para los puntos, esto es relativamente simple. Esta es la mejor opción para algo rápido con solo un par de capas de puntos.

En ambos casos, deberá configurar su capa de puntos en OpenLayers para usar la estrategia "bbox", que le indicará que llame a su URL de API cada vez que la ventana gráfica cambie lo suficiente como para que se carguen más funciones. También deberá establecer la resolución mínima para su capa para que no cargue demasiadas funciones a la vez cuando se aleja.

Por último, con Openlayers, querrá usar un VectorImageLayer con un VectorSource para esta capa, lo que mejorará mucho el rendimiento y le permitirá consultar y editar sus datos de puntos.

Lo anterior debería ayudar a mejorar el rendimiento de su mapeo.

about 4 years ago · Juan Pablo Isaza Relatório

0

Bueno, opté por la API de OpenLayers, creo que es más difícil implementar cosas de los documentos, pero tienen aplicaciones de ejemplo para cada función. Es posible que desee probar eso, mucho mejor rendimiento si su única necesidad es colocar algunos marcadores y visualizar datos.

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