Os quiero presentar la edición actualizada (segunda edición) publicada hoy mismo del libro de «PostGIS: Análisis Espacial Avanzado«.
Aproximadamente un 20% del libro es material nuevo (572 páginas), y un 30-40% son modificaciones, actualizaciones y pequeñas mejoras debido a las nuevas versiones de PostgreSQL/PostGIS utilizadas, así como a diferentes correcciones y/o ampliaciones realizadas.
Si ya dispones de la primera edición del libro te apunto las novedades principales para valorar si necesitas adquirir esta nueva edición:
- Análisis espacial 3D con SFCGAL.
- Tratamietno de geometrías superficiales.
- Ampliación de geometrías curvas.
- Subcontulas correladas y laterales espaciales.
- Consultas espaciales paralelas.
- Herencias de tablas y particiones. Particiones declarativas.
- Índices KNN (subconsultas correladas), BRIN.
- Actualizaciones de pgrouting y pgversion, y algebra de mapas ráster.
- Definiciones algebraicas de las reglas de topología.
- Actualizaciones debido a las nuevas versiones de PostgreSQL/PostGIS.
Las líneas no simples son aquellas que pasan por un mismo punto dos veces, es decir, se autointersecan.
A los que trabajamos con cartografía esto no nos gusta nada, ya que puede originar comportamientos no deseados en análisis espaciales futuros.
PostGIS con ST_IsSimple permite saber si una línea contiene autointersecciones pero no permite eliminarlas.
El comando ST_Node calcula nuevas intersecciones convirtiendo una linestring en una multilinestring con 3 subelementos (en el ejemplo inferior), pero !sorpresa! esa nueva multilinestring sigue siendo no simple (* razón en la figura).
La sencilla función STX_NodeSimple que hemos desarrollado en plpgsql partirá dicho elemento cerrado de forma que la multilinestring resultante sea simple.
Non-simple lines are those that pass through the same point twice, that is, they are self-intersecting.
Those of us who work with cartography do not like this at all, since it can cause unwanted behavior in future spatial analysis.
PostGIS with ST_Issimple allows to know if a line contains self-intersections but does not allow to eliminate them.
The ST_Node command calculates new intersections by converting a linestring into a multilinestring with 3 subelements (in the example), but what a surprise to know that the new multilinestring is still not simple (* reason).
The STX_NodeSimple in plpgsql will split said closed element so that the resulting multilinestring is simple.
|