]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorSarah Hoffmann <lonvia@denofr.de>
Tue, 15 Oct 2013 19:12:10 +0000 (21:12 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Tue, 15 Oct 2013 19:12:10 +0000 (21:12 +0200)
1  2 
sql/functions.sql

diff --combined sql/functions.sql
index 818f6ac12d96e5e6a2e8b600014dcff9f82411d6,bc366f8b99e892b41c53153129653d5e268f848c..2407db5b6b9db377cf966c8f31b58aaddb59e8d3
@@@ -1123,7 -1123,11 +1123,11 @@@ BEGI
          return NULL;
        END IF;
        NEW.rank_search := NEW.admin_level * 2;
-       NEW.rank_address := NEW.rank_search;
+       IF NEW.type = 'administrative' THEN
+         NEW.rank_address := NEW.rank_search;
+       ELSE
+         NEW.rank_address := 0;
+       END IF;
      ELSEIF NEW.class = 'landuse' AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon') THEN
        NEW.rank_search := 22;
        NEW.rank_address := NEW.rank_search;
@@@ -1353,26 -1357,13 +1357,26 @@@ BEGI
      NEW.centroid := null;
  
      -- reclaculate country and partition
 -    IF NEW.rank_search >= 4 THEN
 -      --NEW.calculated_country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
 -      NEW.calculated_country_code := lower(get_country_code(place_centroid));
 +    IF NEW.rank_search = 4 THEN
 +      -- for countries, believe the mapped country code,
 +      -- so that we remain in the right partition if the boundaries
 +      -- suddenly expand.
 +      NEW.partition := get_partition(place_centroid, lower(NEW.country_code));
 +      IF NEW.partition = 0 THEN
 +        NEW.calculated_country_code := lower(get_country_code(place_centroid));
 +        NEW.partition := get_partition(place_centroid, NEW.calculated_country_code);
 +      ELSE
 +        NEW.calculated_country_code := lower(NEW.country_code);
 +      END IF;
      ELSE
 -      NEW.calculated_country_code := NULL;
 +      IF NEW.rank_search > 4 THEN
 +        --NEW.calculated_country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
 +        NEW.calculated_country_code := lower(get_country_code(place_centroid));
 +      ELSE
 +        NEW.calculated_country_code := NULL;
 +      END IF;
 +      NEW.partition := get_partition(place_centroid, NEW.calculated_country_code);
      END IF;
 -    NEW.partition := get_partition(place_centroid, NEW.calculated_country_code);
      NEW.geometry_sector := geometry_sector(NEW.partition, place_centroid);
  
      -- Adding ourselves to the list simplifies address calculations later