Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Viết GeoDataFrame vào Cơ sở dữ liệu SQL

Như đã đề cập trước đây, câu trả lời của @ Kartik chỉ hoạt động cho một lệnh gọi duy nhất, đối với việc bổ sung dữ liệu, nó tạo ra DataError kể từ geom sau đó, mong đợi hình dạng có SRID. Bạn có thể sử dụng GeoAlchemy để xử lý tất cả các trường hợp:

# 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sải hàng động trong khi tìm nạp các bản ghi từ cơ sở dữ liệu

  2. Thiết kế cơ sở dữ liệu lần đầu:Tôi có đang khai thác quá mức không?

  3. MySQL Chọn THAM GIA 3 Bảng

  4. SQLSTATE [23000]:Vi phạm ràng buộc toàn vẹn với ràng buộc hợp lệ

  5. Nhóm MySQL Theo với số N hàng đầu của mỗi loại