[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Maposmatic-dev] [PATCH] filter out nominatim non-admin-boundary entries
From: |
David Decotigny |
Subject: |
[Maposmatic-dev] [PATCH] filter out nominatim non-admin-boundary entries having same name as admin boundaries |
Date: |
Mon, 21 Dec 2009 00:50:54 +0100 |
---
www/maposmatic/nominatim.py | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/www/maposmatic/nominatim.py b/www/maposmatic/nominatim.py
index eecf890..133cab5 100644
--- a/www/maposmatic/nominatim.py
+++ b/www/maposmatic/nominatim.py
@@ -115,6 +115,7 @@ def _retrieve_missing_data_from_GIS(entries):
# Will sort the entries so that the admin boundaries appear
# fdirst, then cities, towns, etc.
unsorted_entries = []
+ admin_boundary_names = set()
PLACE_PRIORITIES = { 'city': 20, 'town': 30, 'municipality': 40,
'village': 50, 'hamlet': 60, 'suburb': 70,
'island': 80, 'islet': 90, 'locality': 100}
@@ -128,6 +129,7 @@ def _retrieve_missing_data_from_GIS(entries):
if entry.get("class") == "boundary":
if entry.get("type") == "administrative":
entry_priority = 10
+ admin_boundary_names.add(entry.get("display_name", 42))
else:
# Just don't try to lookup any additional
# information from OSM when the nominatim entry is
@@ -168,4 +170,16 @@ def _retrieve_missing_data_from_GIS(entries):
conn.close()
# Sort the entries according to their priority
- return [e for prio,e in sorted(unsorted_entries, key=lambda kv: kv[0])]
+ sorted_entries = [e for prio,e in sorted(unsorted_entries,
+ key=lambda kv: kv[0])]
+
+ # Remove those non-admin-boundaries having the same name as an
+ # admin boundary
+ retval = []
+ for e in sorted_entries:
+ if e.get("class") != "boundary" or e.get("type") != "administrative":
+ if e.get("display_name") in admin_boundary_names:
+ continue
+ retval.append(e)
+
+ return retval
--
1.6.3.3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Maposmatic-dev] [PATCH] filter out nominatim non-admin-boundary entries having same name as admin boundaries,
David Decotigny <=