Geoalchemy Cast of geom для сравнения WKT и WKB - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь получить расстояние между двумя точками с помощью st_distancespheroid ().

В то время как один geom напрямую из базы данных, другой создается из значений long и lat с использованием st_geomfromtext ('POINT (2.580085)43.938344) ', srid = 4326)

Мой рабочий код

distance = db.session.query(
                Locations.id,
                db.func.st_distancespheroid(
                    db.func.st_geomfromtext(
                        'POINT(2.580085 43.938344)', srid=4326), 
                    db.func.st_geomfromtext(
                        db.func.st_astext(Locations.geom)),
                    'SPHEROID["WGS 84",6378137,298.257223563]')
                .label('distance'))

Я бы хотел избежать постановки в очередь второго geom с помощью st_astext () и создания обратно geom с помощью st_geomfromtext ()

Это выглядит ненужным для меня.Но в противном случае я получаю следующую ошибку:

Операция со смешанной геометрией SRID

Другие попытки, такие как

WKBElement(db.session.query(db.func.st_geomfromtext(
'POINT(2.580085 43.938344)', srid=4326)))

, тоже не удаются (двоичный файл выглядит корочепо сравнению с базой данных)

...