2 votos

Artefactos al renderizar geometrías TopoJSON en Cesium

Estoy renderizando un documento TopoJSON, creado a través de mapshaper.org a partir de un shapefile, en Cesium. Funciona bien para todas las geometrías excepto una. He intentado volver a crear el documento TopoJSON y volver a editar los arcos manualmente, pero siempre termino con diferentes artefactos geométricos.

A mí me parece que algunos de los arcos tienen una coordenada incorrecta entre ellos, lo que provoca las autointersecciones. Pero no soy capaz de depurar la coordenada en cuestión.

Además, cuando elimino los arcos del polígono manualmente, termino con artefactos similares en diferentes lugares, que parecen ser completamente aleatorios.

Usando "Comprobar validez" en QGIS no me da errores ni auto-intersecciones para la geometría inicial, ni en el shapefile ni en el TopoJSON.

EDITAR : He visualizado el contorno del polígono y parece que los artefactos no tienen contorno, lo que me lleva a la conclusión de que podría tratarse de un problema de renderizado de Cesium y no de un problema con las coordenadas en el documento TopoJSON.

¿Alguien tiene idea de cómo depurar o corregir la geometría de los polígonos?

TopoJSON renderizado en cesio:

enter image description here

TopoJSON con algunos arcos eliminados: enter image description here

TopoJSON con contorno en negro: enter image description here

TopoJSON renderizado en QGIS: enter image description here

1voto

tareq Puntos 366

Partiendo de la base de que se trata de un error de renderizado de Cesium, iba a comprobar qué tipo de geometrías se distorsionarían.

Al parecer, los artefactos aparecían preferentemente a lo largo de los límites latitudinales en dirección oeste-este.

Hice algunas pruebas:

Una geometría "simple" a lo largo de oeste a este tiene buena pinta: enter image description here

Una geometría con algunos vértices más ya muestra artefactos: enter image description here

Una geometría en dirección norte-sur no muestra artefactos: enter image description here

Una geometría en dirección oeste-este también muestra artefactos en el hemisferio sur: enter image description here

Luego iba a dividir la geometría en múltiples polígonos para disminuir la extensión de una sola geometría en dirección oeste-este. Tras dividirla en suficientes geometrías pequeñas, eso parece reducir los artefactos: enter image description here enter image description here

Al eliminar los límites, visualmente no es muy obvio que se muestren múltiples geometrías.

enter image description here

Puede que no sea una solución aceptable en algunos casos en los que es necesaria una geometría completa de una sola pieza, pero al menos mejora el renderizado.

0voto

tareq Puntos 366

El problema se resolvió finalmente configurando el ArcType en Cesium:

entity.polygon.arcType = Cesium.ArcType.GEODESIC;

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X