环境要求:
- OS: Ubuntu >= 14.04
- Postgresql >= 9.1
- PostGIS extension >= 2.0
- JDK >= 1.8
安裝JDK
需要注意,3DCityDB需要JDK>=1.8的版本
配置環境變量
vim /etc/profile # for jdk environment export JAVA_HOME=/opt/jdk1.8.0_131 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
使環境變量生效
source /etc/profile
安裝Postgresql9.5+PostGis2.2
這裏我使用圖形用戶界面安裝,並沒有用命令行. 可以從這裏下載到安裝包,選擇對應的版本
安裝過程比較簡單,但有幾處地方需要注意:
給安裝文件賦予權限
sudo chmod u+x postgresql-9.5.7-1-linux-x64.run ./postgresql-9.5.7-1-linux-x64.run
下面這個勾選一下,會自動下載相應的PostGis
不要勾選,他會自動安裝PostGis
配置Postgresql
修改pg_hba.conf,將md5改成trust
vim /opt/Postgresql/9.5/data/pg_hba.conf
創建數據庫
Postgresql安裝完成之後,會自動的創建一個postgres用戶,我在這個用戶之上進行操作(當然也能創建別的用戶)$ psql -U postgres -p 5432 -h localhost 此時需要輸入在安裝Postgresql時設置的密碼 //在postgres用戶中創建citytestdb數據庫 postgres=# CREATE DATABASE citytestdb OWNER postgres; //從默認的postgres數據庫切換到citytestdb數據庫 postgres=# \c citytestdb citytestdb=# //可以查看一下目前的連接狀態 citytestdb=# \conninfo You are connected to database "citytestdb" as user "postgres" on host "localhost" at port "5432". //爲citytestdb數據庫創建postgis擴展 citytestdb=# create extension postgis; //檢驗postgis是否安裝成功 citytestdb=# select postgis_full_version();
postgresql常用操作
postgresql的常用操作可以參考這裏:
https://mozillazg.github.io/2014/06/hello-postgresql.html
安裝3DCityDB-Importer-Exporter
可以從這裏下載到安裝包. 安裝包是一個jar包
安裝3DCityDB
java -jar 3DCityDB-Importer-Exporter-3.3.1-Setup.jar
爲3DCityDB執行創建數據庫腳本CREATE_DB.sh
vim 3DCityDB-Importer-Exporter/3dcitydb/postgresql/CREATE_DB.sh //修改其中的一些內容爲 export PGPORT=5432 export PGHOST=localhost export PGUSER=postgres export CITYDB=citytestdb //執行腳本 sudo sh CREATE_DB.sh
將3DCityDB與Postgresql相連
導入citygml
導出KML/COLLADA /glTF
導出成功之後會伴隨產生這些文件
可以從這裏下載,是一個js應用,但是基於nodejs的.
首先需要安裝nodejs
從這裏下載nodejs,我選擇的是V6.10.3版本//爲node創建軟連接 sudo ln -s /home/huangby/node-v6.10.3-linux-x64/bin/node /usr/bin/node sudo ln -s /home/huangby/node-v6.10.3-linux-x64/bin/npm /usr/bin/npm //驗證node和npm是否安裝成功 node -v npm -v
- 只需解壓3dcitydb-web-map.zip即可
啓動 3dcitydb-web-map服務
cd 3dcitydb-web-map-1.1.0/ node server.js
用剛才導出的數據可視化結果
UPDATE
使用osmosis工具导入osm到Postgresql
可以从这里下载osmosis工具,直接解压即可
-
sudo ln -s osmosis-latest/bin/osmosis /usr/bin/osmosis
在Postgresql上为其安装扩展
$ psql -U postgres -p 5432 -h localhost 此時需要輸入在安裝Postgresql時設置的密碼 //在postgres用戶中新建一个存放osm的数据库 postgres=# CREATE DATABASE osmtestdb OWNER postgres; //從默認的postgres數據庫切換到osmtestdb數據庫 postgres=# \c osmtestdb osmtestdb=# //安装扩展 osmtestdb=# create extension postgis; osmtestdb=# create extension hstore;
为方便操作Postgresql,安装一下pgadmin3图形用户界面
sudo apt-get install pgadmin3
启动pgadmin3
//启动pgadmin3 $ pgadmin3 //执行pgsnapshot_schema_0.6.sql 在osmtestdb上点击SQL查询按钮,点击文件->打开 pgsnapshot_schema_0.6.sql(该文件在osmosis安装目录osmosis\script下) -> 执行
导入osm到Postgresql
$ osmosis --read-xml nantong.osm --write-pgsql database="osmtestdb" user="postgres"
导入成功了!