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

156
Views
¿Cómo puede actualizar de manera eficiente el relleno de los polígonos de GeoJson en MapboxGL?

Estoy creando una aplicación que representará un mapa con un gran conjunto de GeoJSON (alrededor de 3 MB). El mapa es una coropleta, y los diferentes polígonos de GeoJSON están destinados a ser coloreados de manera diferente según los datos que "contengan".

El problema con el que me encuentro es que no estoy seguro de cómo separar GeoJSON (por ejemplo, datos de polígonos) de los datos reales. Digamos que configuramos los datos de esta manera (o como recomienda Mapbox, solo a través de la URL a una fuente de datos):

 const { data } = await axios.post(sourceUrl, settings); map.current.addSource("states", { type: "geojson", data, }

Los datos subyacentes en este mapa deberán actualizarse con frecuencia con la interacción del usuario. Sin embargo, en este momento GeoJSON contiene tanto los datos de los polígonos (coordenadas) como las propiedades (los datos en sí).

Por ejemplo, el usuario puede hacer clic en una casilla de verificación o escribir un parámetro de búsqueda. Esto actualmente hace un GET a nuestra base de datos, que ejecuta una consulta y devuelve los nuevos datos. Podríamos devolver un nuevo objeto GeoJSON con estos datos agregados dentro de él y llamar a .getSource("source").setData(newData) con todos los nuevos GeoJSON, pero eso sería terriblemente ineficiente. Los polígonos no cambian, solo cambian los datos que contienen.

He investigado el estilo basado en datos, pero tampoco parece ser lo que necesito. Nuestro conjunto de datos subyacente para el mapa es demasiado grande para incluirlo en una sola capa de GeoJSON, no podemos transferir cientos de MB a través de la red para aplicar estilos basados en datos en el cliente.

¿Cómo podemos representar los polígonos de GeoJSON en el mapa solo una vez y luego actualizar sus colores de relleno dependiendo de cómo se cambie un conjunto de datos diferente?

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

0

La respuesta corta es usar Feature State. Este tutorial explica todos los detalles. Puede usar el mismo enfoque para actualizar miles de entidades con datos, sin tener que actualizar ninguna geometría.

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!