¿Alguna idea de cómo extraer la línea central del siguiente polígono (Fig1) usando las funciones de PostGIS o los módulos de Python? Estaba probando la función Voronoi, pero eso no es útil para este tipo de forma. Quiero algo como Fig2 blackline.
¿Alguna idea de cómo extraer la línea central del siguiente polígono (Fig1) usando las funciones de PostGIS o los módulos de Python? Estaba probando la función Voronoi, pero eso no es útil para este tipo de forma. Quiero algo como Fig2 blackline.
libSFCGAL.so
archivo en el/usr/local/lib
directorio pero no sé cómo traerST_StriaghtSkeleton()
el db? ¿Alguna idea?Respuestas:
Esta puede ser una herramienta incorrecta para usted, pero puede hacerlo simplemente con OpenJUMP y el complemento Skeletonizer. El complemento se puede descargar desde http://sourceforge.net/projects/jump-pilot/files/OpenJUMP_plugins/More%20Plugins/JUMP%20Skeletonizer%20Plugin/
El archivo zip contiene un buen manual. El complemento está destinado a corrientes y cuerpos de agua, pero su polígono me imita una corriente.
Este es su polígono como lo digitalicé. Observe los vértices en las líneas centrales de las entradas / salidas.
Puntos de entrada digitalizados en una capa separada. Los puntos deben ajustarse a los vértices en el límite del polígono.
Use las herramientas de Skeletonizer y complete los campos.
Obtén el resultado
fuente
java.lang.Exception: Could not determine shapefile type - data is either all GeometryCollections or empty (Illegal State Exception)
al ejecutar este complemento SkeletonizerSi su polígono es ráster, digitalícelo.
Una vez que su polígono es realmente un polígono :), una primera solución radica, como dijo @WhiteboxDev, es el esqueleto recto, pero tiene el problema de que, además de la línea central que desea, también devuelve una gran cantidad de segmentos que se irradian desde esa línea a El borde de su polígono. Pero si tiene PostGIS 2.2+, puede usarlo
ST_ApproximateMedialAxis()
, que es lo que desea.fuente