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
sridthat the geojson has to conform to.This is the solution:-