I have a json of this format:
{
"type":"Feature",
"properties":{},
"geometry":{
"type":"Point",
"coordinates":[6.74285888671875,-3.6778915094650726]
}
}
And a flask-geoalchemy2 defined field like this:-
from app import db
from app.mixins import TimestampMixin
from geoalchemy2 import Geometry
class Event(db.Model, TimestampMixin):
__tablename__ = 'events'
id = db.Column(db.BigInteger, primary_key=True)
title = db.Column(db.Unicode(255))
start = db.Column(db.DateTime(timezone=True))
location = db.Column(Geometry(geometry_type='POINT', srid=4326))
is_active = db.Column(db.Boolean(), default=False)
def __repr__(self):
return '<Event %r %r>' % (self.id, self.title)
Attempting to save an event
object with the event.location
assigned with the above json value fails with this error
DataError: (DataError) Geometry SRID (0) does not match column SRID (4326)
What's the correct format event.location
has to be in order for the
db.session.add(event)
db.session.commit()
to work correctly?
It was an error in the way I process my geojson. I need to explicitly state the
srid
that the geojson has to conform to.This is the solution:-