X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/00e3a752c9a749d2e2a0b8a406dd1b7e8e204765..6c67a4b500cf08b3cfce96e74b2658deb4696c05:/nominatim/api/lookup.py?ds=sidebyside diff --git a/nominatim/api/lookup.py b/nominatim/api/lookup.py index de06441d..1b0ee87f 100644 --- a/nominatim/api/lookup.py +++ b/nominatim/api/lookup.py @@ -102,14 +102,17 @@ async def find_in_tiger(conn: SearchConnection, place: ntyp.PlaceRef, """ log().section("Find in TIGER table") t = conn.t.tiger + parent = conn.t.placex sql = sa.select(t.c.place_id, t.c.parent_place_id, + parent.c.osm_type, parent.c.osm_id, t.c.startnumber, t.c.endnumber, t.c.step, t.c.postcode, t.c.linegeo.ST_Centroid().label('centroid'), _select_column_geometry(t.c.linegeo, details.geometry_output)) if isinstance(place, ntyp.PlaceID): - sql = sql.where(t.c.place_id == place.place_id) + sql = sql.where(t.c.place_id == place.place_id)\ + .join(parent, t.c.parent_place_id == parent.c.place_id, isouter=True) else: return None @@ -172,6 +175,7 @@ async def get_place_by_id(conn: SearchConnection, place: ntyp.PlaceRef, assert result is not None result.parent_place_id = row.parent_place_id result.linked_place_id = getattr(row, 'linked_place_id', None) + result.admin_level = getattr(row, 'admin_level', 15) indexed_date = getattr(row, 'indexed_date', None) if indexed_date is not None: result.indexed_date = indexed_date.replace(tzinfo=dt.timezone.utc)