Mysql
 sql >> Database >  >> RDS >> Mysql

Scrivi GeoDataFrame nel database SQL

Come accennato in precedenza, la risposta di @Kartik funziona solo per una singola chiamata, per aggiungere dati genera un DataError dal geom colonna si aspetta quindi che la geometria abbia un SRID. Puoi usare GeoAlchemy per gestire tutti i casi:

# 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>)})