]> git.openstreetmap.org Git - nominatim.git/commitdiff
make sure no invalid geometries end up in placex
authorSarah Hoffmann <lonvia@denofr.de>
Sat, 22 Apr 2017 08:34:03 +0000 (10:34 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 22 Apr 2017 08:34:03 +0000 (10:34 +0200)
utils/setup.php

index fae200cc71fa92f2659c1ee01822bba8673f800d..5ec410000e96a40059dd711cff78f402a5f92cbb 100755 (executable)
@@ -367,7 +367,9 @@ if ($aCMDResult['load-data'] || $aCMDResult['all']) {
         $sSQL = 'insert into placex (osm_type, osm_id, class, type, name, admin_level, ';
         $sSQL .= '                   address, extratags, geometry) ';
         $sSQL .= 'select * from place where osm_id % '.$iLoadThreads.' = '.$i;
-        $sSQL .= " and not (class='place' and type='houses' and osm_type='W' and ST_GeometryType(geometry) = 'ST_LineString')";
+        $sSQL .= " and not (class='place' and type='houses' and osm_type='W'";
+        $sSQL .= "          and ST_GeometryType(geometry) = 'ST_LineString')";
+        $sSQL .= " and ST_IsValid(geometry)";
         if ($aCMDResult['verbose']) echo "$sSQL\n";
         if (!pg_send_query($aDBInstances[$i]->connection, $sSQL)) {
             fail(pg_last_error($aDBInstances[$i]->connection));