postgis安装_从零开始,构建电子地图网站:0_2_数据处理postgis
軟件安裝完,開始數(shù)據(jù)處理。
從China Historical GIS下載一份數(shù)據(jù)。
一、數(shù)據(jù)下載
數(shù)據(jù)來源:
China Historical GIS:
https://sites.fas.harvard.edu/~chgis/data/chgis/v6/
先下載一份時(shí)間序列數(shù)據(jù):
Download CHGIS V6 TIME SERIES Data
https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/Q9VOF5
V6 Time Series Prefecture Points
https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/WW1PD6
V6 Time Series Prefecture Polygons
https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/I0Q7SM
二、數(shù)據(jù)查看
這份數(shù)據(jù)是shp格式的。打開QGIS看一眼數(shù)據(jù)。
QGIS教程參看:https://blog.csdn.net/u014397092/article/details/89403468
因?yàn)橹皇强匆谎?#xff0c;所以XYZ Tiles加載一下OpenStreetMap就可以了。
把下載好的數(shù)據(jù)v6_time_cnty_pts_utf_wgs84.shp加載進(jìn)去,utf是編碼格式,wgs84是坐標(biāo)系。
v6_time_cnty_pts_gbk_wgs84.shp和v6_time_cnty_pts_utf_wgs84.shp內(nèi)容一樣,就是編碼不一樣。
Layers——Open Attribute Table,打開屬性表,查看一下,如果是亂碼,可能編碼不兼容,換utf的shp或gbk的shp。
下圖是點(diǎn)。
把其他數(shù)據(jù)都加載進(jìn)來,保持坐標(biāo)系與編碼統(tǒng)一。
其中:
v6_time_cnty_pts_gbk_wgs84.shp
歷史行政區(qū)劃點(diǎn),到縣一級。
v6_time_pref_pts_gbk_wgs84.shp
歷史行政區(qū)劃點(diǎn),到州一級。
v6_time_pref_pgn_gbk_wgs84.shp
歷史政區(qū)面。
三、數(shù)據(jù)入庫
1.初始化數(shù)據(jù)庫
先下載安裝navicat用來連接pg庫。
安裝教程參見:https://blog.csdn.net/tqs314/article/details/80760401
Navicat連接pg庫參見:https://jingyan.baidu.com/article/642c9d34ea3ada644a46f7ad.html
因?yàn)槲抑把bpostgresql和postGIS的時(shí)候,忘了端口號,也忘了初始化數(shù)據(jù)庫,所以……
沒關(guān)系,卸載,重新安裝一下就好了。
如果數(shù)據(jù)庫初始化失敗,打開cmd。
Cd 到安裝目錄下,C:PostgreSQL10bin。
initdb -D 數(shù)據(jù)庫保存路徑。
安裝postGIS的時(shí)候,確保路徑是在postgresql下:C:PostgreSQL10。
Win10安裝postgresql和postgis的時(shí)候,確保安裝路徑下沒有空格,既沒有這樣的program files。
2.空間擴(kuò)展
用navicat打開數(shù)據(jù)庫postgres,就是初始化的數(shù)據(jù)庫。
新建查詢,執(zhí)行CREATE EXTENSION postgis,為數(shù)據(jù)庫添加空間擴(kuò)展。
會發(fā)現(xiàn)數(shù)據(jù)庫中多了一個(gè)表spatial_ref_sys。
3.用PostGIS工具上傳shp
用PostGIS Shapefile Import/Export Manager工具上傳shp。
我們把utf8編碼格式、wgs84坐標(biāo)系的文件上傳數(shù)據(jù)庫,因?yàn)閿?shù)據(jù)庫一般都是utf-8編碼的。
v6_time_cnty_pts_utf_wgs84.shp
v6_time_pref_pts_utf_wgs84.shp
v6_time_pref_pgn_utf_wgs84.shp
首先打開PostGIS Shapefile Import/Export Manager,點(diǎn)擊View connection details,打開PostGIS connection,輸入賬號密碼,連接數(shù)據(jù)庫。
Import——Add File,選擇3個(gè)shp文件,然后點(diǎn)擊Import。數(shù)據(jù)就導(dǎo)入pg庫了。
就此,數(shù)據(jù)入庫就結(jié)束了。
4.用QGIS看pg庫中的數(shù)據(jù)
可以用QGIS連接一下數(shù)據(jù)庫,看看效果。
先給QGIS加一個(gè)地圖瓦片。
Browser——XYZ Tiles——右鍵——New Connection,打開 XYZ Connection。
把瓦片url粘貼進(jìn)去。
http://webrd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8
QGIS連接postgresql。
打開Data Source Manger,選擇Vector,選擇Database,下拉選擇PostgreSQL,選擇new,輸入Connection Information,輸入U(xiǎn)ser name和Password,勾選store,Test Connection,顯示連接成功,ok,ok,add。
看效果還可以。
5.用sql查看數(shù)據(jù)
Navicat打開一個(gè)表,看geom列,都是這樣的內(nèi)容:0101000000A265DD3F16C55B4088963C9E96814340,geometry對象是geohash編碼的。
寫個(gè)sql看看:SELECT st_astext(geom) FROM v6_time_cnty_pts_utf_wgs84 LIMIT 1
至少知道坐標(biāo)了:POINT(111.079483 39.012409)
其他表再看看。
SELECT st_astext(geom) FROM v6_time_pref_pgn_utf_wgs84 LIMIT 1
MULTIPOLYGON(((113.549411712145 36.7545434898289,113.543285553768 36.7521524539279,113.560044728209 36.7134634435762,113.55651873219 36.7287158304727,113.552914744172 36.7456842597138,113.549411712145 36.7545434898289)))
SELECT st_astext(geom) FROM v6_time_pref_pts_utf_wgs84 LIMIT 1
POINT(111.076347 39.017826)
用postgis就能把數(shù)據(jù)都導(dǎo)入postgresql里面,也不用寫程序了。
但這樣就無處顯示我會寫python了。
接下來看看,怎么用python寫個(gè)腳本導(dǎo)入數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的postgis安装_从零开始,构建电子地图网站:0_2_数据处理postgis的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最便宜的洗衣机多少钱啊?
- 下一篇: 电工接线模拟仿真软件_VERICUT数控