Сериализация WKB в WKT или геойсон в зефире с флягой / зефире-sqlalchemy - PullRequest
0 голосов
/ 26 апреля 2018

В моей модели есть куча ГИС-таблиц, которые я создал в flaskSQLAlchemy. Каждая из этих моделей имеет поле 'geom', которое является объектом WKB. Который должен быть сериализован в JSON в WKT или geojson, чтобы сработал вызов API GET.

Я пытался использовать функции geoalchemy2, но я застрял. Я использую комбо фляга зефир / зефир-sqlalchemy, и я попытался что-то вроде следующего, но безуспешно.

from geoalchemy2 import functions
from marshmallow import fields

class WKTSerializationField(fields.Field):
def _serialize(self, value, attr, obj):
    if value is None:
        return value
    else:
        if type(value).__name__ == 'WKBElement':
            return functions.ST_AsEWKT(value)
        else:
            return None



class GISModelTableSchema(ma.ModelSchema):
    class Meta:
       model = GISModelTable
    geom = WKTSerializationField(attribute="geom")

Пожалуйста, предоставьте пример кода, если можете, как сериализовать / десериализовать поле в алхимии зефира. Или любой ответ приветствуется на этом этапе.

...