[postgis-users] St_makevalid issue
Paul van der Linden
paul.doskabouter at gmail.com
Thu Mar 26 07:54:20 PDT 2020
Doesn't anybody have an idea? Or is at least curious?
Especially the select st_isvalid(geo) where not st_valid returning a "true"
row?
>I have a query that gives inconsistent results.
>It almost seems like st_makevalid doesn't always produce the same results
>given the same input, and sometimes even returns invalid geometries...
>
>Results are
>f;1159320407;"Bangladesh"
>f;1159321073;"Mozambique"
>f;1159316737;"Nord"
>f;1159314827;"Uusimaa"
>
>second run:
>f;1159321073;"Mozambique"
>t;1159315455;"Syddanmark"
>t;1159314827;"Uusimaa"
>t;1159317795;"Gerona"
>
>third run:
>f;1159321073;"Mozambique"
>t;1159315455;"Syddanmark"
>
>note the 't' in the second and third run...
>
>Query:
>
>SELECT ST_isvalid(simplifiedgeo2),* FROM (
>SELECT
> foo2.ne_id,
> foo2.name,
> CASE
> WHEN ST_isvalid(foo2.simplifiedgeo) THEN foo2.simplifiedgeo
> ELSE ST_makevalid(foo2.simplifiedgeo)
> END AS simplifiedgeo2
> FROM (
> SELECT
> ST_simplifypreservetopology(foo.geom,
> LEAST(
> ST_xmax(foo.shiftedgeo::box3d) - ST_xmin(foo.shiftedgeo::box3d),
>ST_ymax(foo.shiftedgeo::box3d) - ST_ymin(foo.shiftedgeo::box3d))
> ) AS simplifiedgeo,
> foo.ne_id,
> foo.name,
> foo.geom
> FROM (
> SELECT
> natearth.ne_id,
> natearth.geom,
> natearth.name,
> CASE
> WHEN (
> ST_xmax(ST_shiftlongitude(natearth.geom)::box3d) -
>ST_xmin(ST_shiftlongitude(natearth.geom)::box3d))
> <
> (ST_xmax(natearth.geom::box3d) -
>ST_xmin(natearth.geom::box3d)
> ) THEN ST_shiftlongitude(natearth.geom)
> ELSE natearth.geom
> END AS shiftedgeo
> FROM (
> SELECT
> ne_10m_admin_0_countries_lakes.ne_id,
> ne_10m_admin_0_countries_lakes.geom,
> ne_10m_admin_0_countries_lakes.name
> FROM natural_earth.ne_10m_admin_0_countries_lakes
> UNION ALL
> SELECT
> ne_10m_admin_1_states_provinces_lakes.ne_id,
> ne_10m_admin_1_states_provinces_lakes.geom,
> ne_10m_admin_1_states_provinces_lakes.name
> FROM natural_earth.ne_10m_admin_1_states_provinces_lakes
> ) natearth
> ) foo
> ) foo2
>) as fff
>WHERE NOT ST_isvalid(simplifiedgeo2)
>
>Any advice on how to further debug this?
>
>"POSTGIS="2.5.1 r17027" [EXTENSION] PGSQL="110" GEOS="3.7.0-CAPI-1.11.0
>3.7.1" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.2.4, released
>2018/03/19 GDAL_DATA not found" LIBXML="2.7.8" LIBJSON="0.12"
>LIBPROTOBUF="1.2.1" (core procs from "2.5.0 r16836" nee (...)"
>"PostgreSQL 11.2, compiled by Visual C++ build 1914, 64-bit"
>
>Running on windows 64-bit.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20200326/5887e6d3/attachment.html>
More information about the postgis-users
mailing list