From: Sarah Hoffmann Date: Tue, 4 Jul 2023 14:08:18 +0000 (+0200) Subject: fix SRID handling in Geometry type X-Git-Tag: v4.3.0~56^2~3 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/3e725bb2dbb3a1f374affc8739a348bca0d47b20 fix SRID handling in Geometry type --- diff --git a/nominatim/db/sqlalchemy_types.py b/nominatim/db/sqlalchemy_types.py index ed4aef1f..1718b873 100644 --- a/nominatim/db/sqlalchemy_types.py +++ b/nominatim/db/sqlalchemy_types.py @@ -34,9 +34,9 @@ class Geometry(types.UserDefinedType): # type: ignore[type-arg] def bind_processor(self, dialect: 'sa.Dialect') -> Callable[[Any], str]: def process(value: Any) -> str: if isinstance(value, str): - return 'SRID=4326;' + value + return value - return 'SRID=4326;' + cast(str, value.to_wkt()) + return cast(str, value.to_wkt()) return process @@ -48,7 +48,9 @@ class Geometry(types.UserDefinedType): # type: ignore[type-arg] def bind_expression(self, bindvalue: SaBind) -> SaColumn: - return sa.func.ST_GeomFromText(bindvalue, type_=self) + return sa.func.ST_GeomFromText(bindvalue, + sa.bindparam('geometry_srid', value=4326, literal_execute=True), + type_=self) class comparator_factory(types.UserDefinedType.Comparator): # type: ignore[type-arg]