sql >> Database >  >> RDS >> Mysql

Schrijf GeoDataFrame in SQL Database

Zoals eerder vermeld, werkt het antwoord van @Kartik alleen voor een enkele oproep, voor het toevoegen van gegevens roept het een DataError op sinds de geom kolom verwacht dan dat de geometrie een SRID heeft. U kunt GeoAlchemy . gebruiken om alle zaken af ​​te handelen:

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


  1. 4 kant-en-klare SQL-gegevensconversiemethoden en gebruiksscenario's

  2. Hoe de cPanel MySQL-databasewizard te gebruiken?

  3. Hoe breng ik een BigDecimal in Hibernate in kaart, zodat ik dezelfde schaal terugkrijg die ik heb ingevoerd?

  4. Backend-prestaties verbeteren Deel 2/3:Database-indexen gebruiken