使用 GDAL2 寫入 MySQL8 數據庫
介紹
現在許多 GIS 應用都是基于空間數據的應用,因此,對于空間數據的存儲和處理顯得尤為重要。MySQL 作為一款戰斗力強大的關系型數據庫,被廣泛用于 GIS 空間數據庫的開發和使用。而 GDAL2,則是一個用于讀寫和處理多種柵格和矢量地理數據格式的庫,非常適合用于 GIS 數據處理。
這里我們就介紹一下如何使用 GDAL2 寫入 MySQL8 數據庫。
安裝 GDAL2 和 MySQL8
首先,我們需要安裝 GDAL2 和 MySQL8,這里就不詳細說明了。
創建 MySQL 數據庫和表
接著,我們需要在 MySQL 中創建一個數據庫和相應的表,用于存儲我們要寫入的空間數據。
代碼示例:
```
CREATE DATABASE gisdb;
USE gisdb;
CREATE TABLE points (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
geom GEOMETRY,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
連接 MySQL 數據庫
接下來,我們就需要連接 MySQL 數據庫了。
代碼示例:
```
import mysql.connector
cnx = mysql.connector.connect(user='root', password='password',
host='localhost', database='gisdb')
```
打開數據源和圖層
現在我們需要通過 GDAL2 打開一個數據源,和一個圖層。
代碼示例:
```
from osgeo import ogr
driver = ogr.GetDriverByName('MySQL')
dsn = 'MYSQL:gisdb,user=root,password=password,host=localhost'
layername = 'points'
dataSource = driver.Open(dsn)
layer = dataSource.GetLayer(layername)
```
寫入空間數據
好了,現在我們就可以開始寫入空間數據了。
代碼示例:
```
featureDefn = layer.GetLayerDefn()
feature = ogr.Feature(featureDefn)
feature.SetField("name", "Beijing")
wkt = "POINT(116.397228 39.900631)"
point = ogr.CreateGeometryFromWkt(wkt)
feature.SetGeometry(point)
layer.CreateFeature(feature)
```
完整代碼示例
```
import mysql.connector
from osgeo import ogr
cnx = mysql.connector.connect(user='root', password='password',
host='localhost', database='gisdb')
driver = ogr.GetDriverByName('MySQL')
dsn = 'MYSQL:gisdb,user=root,password=password,host=localhost'
layername = 'points'
dataSource = driver.Open(dsn)
layer = dataSource.GetLayer(layername)
featureDefn = layer.GetLayerDefn()
feature = ogr.Feature(featureDefn)
feature.SetField("name", "Beijing")
wkt = "POINT(116.397228 39.900631)"
point = ogr.CreateGeometryFromWkt(wkt)
feature.SetGeometry(point)
layer.CreateFeature(feature)
cnx.close()
```
運行代碼,如果一切順利,你就能順利地將空間數據寫入 MySQL8 數據庫了。
網站導航
- zblogPHP模板zbpkf
- zblog免費模板zblogfree
- zblog模板學習zblogxuexi
- zblogPHP仿站zbpfang