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

Hvordan kan jeg importere en geoDataFrame til MySQL?

Efter at have prøvet mange ting bemærkede jeg, at to_sql-funktionen ikke genererede den korrekte MySQL-syntaks, for at den kunne fungere. Også med tilgangen til at skifte til wkb genkendte MySQL stadig ikke den kolonne som geometri, hvis jeg lader teksten være som den er (se billedet i spørgsmålet).

Det, der virkede for mig, var at ændre geometrifeltet til streng og opdatere det i python, så det ville se sådan ud:

Derefter fortsatte jeg med at bruge koden nedenfor, hvor jeg sendte datarammen til MySQL og derefter opdaterede tabellen for at indstille geometrikolonnen:

regions.to_sql('pr_regions', con=conn, schema='eq_pr_db',
               if_exists='replace', index=False)

#add column type Polygon

conn.execute('''ALTER TABLE `eq_pr_db`.`pr_regions` 
                ADD COLUMN `geom` Polygon;''')

#populate new column by applying the ST_GeomFromText function to transform the string to geometry type.

conn.execute('''UPDATE `eq_pr_db`.`pr_regions`
                SET geom =  ST_GeomFromText(geometry) ;''')



  1. Rails 3, ActiveRecord, PostgreSQL - .uniq kommando virker ikke?

  2. Hvorfor overhovedet bruge *DB.exec() eller forberedte sætninger i Golang?

  3. Bedste praksis til at implementere sikker database til Android-enhed

  4. Dublet kolonne ved joinforbindelse