sql >> Base de Datos >  >> RDS >> Mysql

Escribir GeoDataFrame en la base de datos SQL

Como se mencionó anteriormente, la respuesta de @ Kartik funciona solo para una sola llamada, para agregar datos genera un DataError desde la geom la columna espera que la geometría tenga un SRID. Puedes usar GeoAlchemy para manejar todos los casos:

# Imports
from geoalchemy2 import Geometry, WKTElement
from sqlalchemy import *

# Use GeoAlchemy's WKTElement to create a geom with SRID
def create_wkt_element(geom):
    return WKTElement(geom.wkt, srid = <your_SRID>)

geodataframe['geom'] = geodataframe['geom'].apply(create_wkt_element)

db_url = 'postgresql://username:[email protected]:socket/database'
engine = create_engine(db_url, echo=False)

# Use 'dtype' to specify column's type
# For the geom column, we will use GeoAlchemy's type 'Geometry'
your_geodataframe.to_sql(table_name, engine, if_exists='append', index=False, 
                         dtype={'geom': Geometry('POINT', srid= <your_srid>)})