Estoy trabajando en una capa con MultiPolígonos y estoy tratando de calcular la distancia más corta entre un MultiPolígono y un punto que está contenido en ese MultiPolígono, usando Django y PostGIS.
Primero compruebo qué MultiPolígono contiene ese Punto y lo almaceno en una variable:
mpoly = MPoly.objects.filter(geom__contains=location)
Luego, estoy tratando de calcular la distancia entre el punto y el objeto mpoly utilizando la interfaz psycopg2:
curs.execute("SELECT ST_Distance(ST_GeogFromText(%s), ST_GeogFromText('SRID=4326;Point(24.050, 35.311)')) FROM MPoly" % mpoly)
Pero da el siguiente error de sintaxis:
Traceback (most recent call last):
File "<console>", line 1, in <module>
ProgrammingError: syntax error at or near ";"
LINE 1: SELECT ST_Distance(ST_GeomFromText(SRID=4326;MULTIPOLYGON ((23.567..
Creo que el error proviene del formato de "mpoly", pero ¿por qué? Si escribo en un intérprete de Python >> mpoly, imprime Objeto MultiPolígono en 0x7fc8d5130