Thursday, February 09, 2012

建立 Oracle Spatial/Location WMS

簡單地介紹如何將儲存在Oracle Spatial/Location 的空間資料發佈成WMS (Web Map Service)
需要具備的環境
1. Oracle Database (已經將空間資料載入於SDO_GEOMETRY欄位的表格)
2. Oracle Mapviewer (透過 Oracle Mabuilder 將空間資料表格已定義成BASE_MAP,THEME)
Oracle WMS 是由Oracle Mapviewer提供,架構圖簡化如下:
1. 啓動WMS的設定
進入Oracle Mapviewer的設定,並移除<wms_cnfig>的註解
修改成適當的主機名稱,Port,通訊協定 (protocol),default_datasource (這個設定很重要)以及 public_datasource

<wms_config
  host="www.oracle.com"
  port="80"
  protocol="http“
  default_datasource="mvdemo"
  public_datasources="mvdemo"

>
...
</wms_config>

在這裏用的data_source是"mvdemo",應該在之前Mapviewer的設定上已經談過了,這裏就略過。附加說明:如果沒有設定default_datasource,則預設值為"wms"。

2. 設定其它在<wms_config>的內容
3. 設定SDO與EPSG座標參數對應表(選項,如果要使用EPSG座標代號就一定要設定)
修改<wms_config>的內容設定

<wms_config> ...
  <sdo_epsg_mapfile>
    ../conf/epsg_srids.properties
  </sdo_epsg_mapfile>
</wms_config>
epsg_srids.properties 的內容格式為 sdo_srid=epsg_srid
範例
82208=32601
82271=32602
81989=27700
27700-27700

這樣就大致設定完成
接下來就可以進行測試
GetCapabilities
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.1.1&REQUEST=GetCapabilities&SERVICE=WMS
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.3.0&REQUEST=GetCapabilities&SERVICE=WMS
(請注意URL並沒有換行)
GetMap
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.1.0&REQUEST=GetMap&FORMAT=image/png&SRS=EPSG:4326&BBOX=-127,25,-78,40&WIDTH=800&HEIGHT=600&LAYERS=THEME_DEMO_STATES,THEME_DEMO_STATES_LINE,CUSTOMERS
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&CRS=EPSG:4326&BBOX=-127,25,-78,40&WIDTH=800&HEIGHT=600&LAYERS=THEME_DEMO_STATES,THEME_DEMO_STATES_LINE,CUSTOMERS
(BBOX 不要超出WMS可以提供的範圍)
以下為使用"BASE_MAP"再加套上"LAYERS"
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.1.0&REQUEST=GetMap&FORMAT=image/jpeg&SRS=SDO:8307&BBOX=-127,25,-78,40&WIDTH=800&HEIGHT=600&BASEMAP=DEMO_MAP&DATASOURCE=mvdemo&LAYERS=CUSTOMERS
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/jpeg&CRS=SDO:8307&BBOX=-127,25,-78,40&WIDTH=800&HEIGHT=600&BASEMAP=DEMO_MAP&DATASOURCE=mvdemo&LAYERS=CUSTOMERS

GetFeatureInfo

http://127.0.0.1:7001/mapviewer/wms?VERSION=1.1.0&REQUEST=GetFeatureInfo&query_Layers=THEME_DEMO_STATES&SRS=SDO:8307&BBOX=-124,32,-116,41&WIDTH=800&HEIGHT=600&X=10&Y=10
http://127.0.0.1:7001/mapviewer/wms?VERSION=1.3.0&REQUEST=GetFeatureInfo&query_Layers=THEME_DEMO_STATES&CRS=SDO:8307&BBOX=-124,32,-116,41&WIDTH=800&HEIGHT=600&I=10&J=10
其結果
<GetFeatureInfo_Result>
<ROWSET name="THEME_DEMO_STATES">
<ROW num="1">
<ROWID>
AAASeoAABAAAVghAAE
</ROWID>
</ROW>
</ROWSET>
</GetFeatureInfo_Result>




No comments: