GeoServer連接oracle數據庫


添加shp文件請參考:http://ishare.iask.sina.com.cn/f/23580732.html

簡單記錄一下:把shp文件存進oracle數據庫,然后從數據庫讀取數據

shp文件存進oracle數據庫:

       

         首先我們要把shp文件轉換分割成oracle可以導入的數據庫文件,這個轉換可以使用oracle提供的一個現成的工具shp2sdo(很小),

可以到網上去找,下載后把此文件復制到PATH變量包含的目錄下,如我的oracle客戶端安裝后自動注冊的環境變量是 path  C:\Oracle\product\10.1.0\Client_1\bin;,

我們可以把此文件拷貝到該目錄下,

然后在dos下運行該工具,

定位到我們的shp文件的位置

例如我們的shp文件名稱是state.shp(shapefile包括至少三個文件state.shp state.dbf state.idx,請把這三個文件放在同一個文件加下,否則轉換會出問題

在D:\map\目錄下,我們在dos命令窗口下就應該這樣操作

shp2sdo state tabletest -i gid -s 8307 -g -d

其中state即為本地的shp文件名(不加shp后綴),

tabletest為生成的文件名(同時也是將來導進數據庫的表名),

-d代表含義是將分解后的ctl文件(控制文件)和data文件(數據存儲文件)分別生成,

如果沒有該選項,則不會有單獨的data文件生成,數據存儲和控制都在ctl一個文件中,

經常用到的還有選項 -i id_colum指定id序列列,默認是id,即作為生成數據的唯一性標志,

此列是不可能重復的,一般作為索引列,-s **指定生成srid,默認是null,目前一般是8307吧,

-g  geometry column指定sdo_geometry,

默認是GEOM,此選項一般使用默認即可,命令執行后,

會生成三個文件,

tabletest .sql、tabletest .ctl、tabletest .data(我的只生成了兩個,沒有tabletest .data,不知道為什么,因為后面沒用到該文件,也就沒去管它)。


分解完成后就是導入,這里仍然使用命令行的方式

D:\data\>sqlplus system/root@XE
SQL>@tabletest.sql
SQL>quit 

導入ctl文件

D:\data\>sqlldr system/root@XE tabletest

建立空間索引

D:\data\>sqlplus system/root@XE
SQL>CREATE   Index  STATEAREA_idx  ON   TABLETEST(GEOM)   INDEXTYPE  is  MDSYS.SPATIAL_INDEX;

至此空間數據導入完畢。


另外還需要建立一個視圖,具體作用說不大清楚,但在啟動程序發布地圖的時候會用到,如果沒有此視圖文件會出現圖層無法map的錯誤,建立過程如下:

 select  
  GID ,
  FNODE_ ,
  TNODE_ ,
  LPOLY_ ,
  RPOLY_ ,
  LENGTH ,
  RAI_4M_,
  RAI_4M_ID ,
  GBCODE ,
  NAME,
  PINYIN 

from system.tabletest

 

 

我直接在database express edition 中建立的;

至此,shp文件就導入oracle數據庫中了;

下面是在GeoServer中配置該數據作為源數據:

geoserver web 版 tomcat6.0

geoserver 版本為:2.2.2

把geoserver.war運行起來后,默認在data下的stores下是沒有oracle選項的,

(我這是后來加的)

下載安裝oracle spatial插件 download oracle plugin for geoserver from

http://sourceforge.net/project/downloading.php?groupname=geoserver&filename=geoserver-2.2.2-oracle-plugin.zip&use_mirror=nchc config


Copy gt2-oracle jar to [GEOSERVER_HOME]/server/geoserver/WEB-INF/lib/
copy ojdbc14.jar to [GEOSERVER_HOME]/lib
restart GeoServer

然后就會看到

現在就可以添加了:

選擇Oracle NG -Oracle Database 選項

進入:

下面是我的具體配置(在這一步時,不要填寫具體表名,這一步只是連接上oracle的數據庫,具體數據表在下一步選擇):

如果配置正確就會進入:

查找剛才創建的表:

選擇Publish:

之后可以去publishing欄目(之前是在data中)

選擇style(可以是默認值)

之后保存,就會自動跳轉到:

可以回到layer previer 中查看了:

最后:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM