return f'GEOMETRY({self.subtype}, 4326)'
- def bind_processor(self, dialect: sa.Dialect) -> Callable[[Any], str]:
+ def bind_processor(self, dialect: 'sa.Dialect') -> Callable[[Any], str]:
def process(value: Any) -> str:
- assert isinstance(value, str)
- return value
+ if isinstance(value, str):
+ return 'SRID=4326;' + value
+
+ return 'SRID=4326;' + value.to_wkt()
return process
- def result_processor(self, dialect: sa.Dialect, coltype: object) -> Callable[[Any], str]:
+ def result_processor(self, dialect: 'sa.Dialect', coltype: object) -> Callable[[Any], str]:
def process(value: Any) -> str:
assert isinstance(value, str)
return value
return process
- def bind_expression(self, bindvalue: sa.BindParameter[Any]) -> SaColumn:
+ def bind_expression(self, bindvalue: 'sa.BindParameter[Any]') -> SaColumn:
return sa.func.ST_GeomFromText(bindvalue, type_=self)
return sa.func.ST_Expand(self, other, type_=Geometry)
+ def ST_Collect(self) -> SaColumn:
+ return sa.func.ST_Collect(self, type_=Geometry)
+
+
def ST_Centroid(self) -> SaColumn:
return sa.func.ST_Centroid(self, type_=Geometry)