1. GeoServer 發(fā)布 WMS
進(jìn)入工作區(qū)
點(diǎn)擊新建工作區(qū)
填寫(xiě)工作區(qū)的配置信息
點(diǎn)擊提交后自動(dòng)跳轉(zhuǎn)到所有工作區(qū)界面赁遗,可以看到創(chuàng)建的工作區(qū)
點(diǎn)擊 Stores (數(shù)據(jù)存儲(chǔ))
添加新的 Stores
選擇 Stores 的數(shù)據(jù)類(lèi)型
點(diǎn)擊后進(jìn)入 GeoTIFF 數(shù)據(jù)配置界面,配置完成之后抠刺,點(diǎn)擊 Save
點(diǎn)擊 Save 之后跳轉(zhuǎn)到 創(chuàng)建圖層界面叶堆,點(diǎn)擊 Publish
點(diǎn)擊 publish 之后進(jìn)入圖層編輯界面阱飘,設(shè)置圖層參數(shù),重點(diǎn)是參考系坐標(biāo)和范圍,一般是4326(WGS84)
往下滾動(dòng)頁(yè)面填寫(xiě)參數(shù)信息虱颗,添加完成之后點(diǎn)擊 save
<figcaption style="margin-top: 0.66667em; padding: 0px 1em; font-size: 0.9em; line-height: 1.5; text-align: center; color: rgb(153, 153, 153);">這里的 input transparent color 顏色選擇為 000000沥匈,然后 .tif 文件發(fā)布以后就沒(méi)有黑色的底邊了</figcaption>
save 之后,會(huì)自動(dòng)跳轉(zhuǎn)到 layers 界面忘渔,在左側(cè)菜單欄找到圖層雨來(lái)高帖,然后在所有圖層中找到剛才新建的圖層,在select One中點(diǎn)擊 OpenLayer畦粮,如果彈出地圖說(shuō)明發(fā)布正確
點(diǎn)擊后顯示圖像
地圖顯示失敗的原因一般都是圖層的參考系設(shè)置錯(cuò)誤散址,4326 坐標(biāo)系設(shè)置成了其他坐標(biāo)系乖阵,或者范圍與數(shù)據(jù)真實(shí)范圍不一致
2. GeoServer 跨域
由于發(fā)布的 Cesium 服務(wù)與 GeoServer 一般非同源。因此 Cesium 要訪(fǎng)問(wèn) GeoServer爪飘,需要 GeoServer 支持跨域义起。GeoServer默認(rèn)未開(kāi)啟這一功能,開(kāi)啟的話(huà)需要找到 GeoServer安裝目錄下的 geoserver/WEB-INF/web.xml 文件师崎,然后將下面兩部分代碼取消注釋?zhuān)渲猛瓿芍螅貑?tomcat
(使用 war 包發(fā)布的 geoserver 開(kāi)啟跨源請(qǐng)求好像有問(wèn)題椅棺,所以我又安裝了 GeoServer 14.2 的 windows 安裝版)
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>chainPreflight</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3. Cesium 獲取 GeoServer 發(fā)布的地圖
var viewer = new Cesium.Viewer("cesiumContainer", {
});
var imageryProvider = new Cesium.WebMapServiceImageryProvider({
// 這里是你的 geoserver服務(wù)點(diǎn)擊查看圖層的 url
url: 'http://localhost:8089/geoserver/cesiumMapTest/wms',
// 這里是自定義的圖層名稱(chēng)
layers: 'geotiff_coverage',
parameters: {
service: 'WMS',
format: 'image/png',
transparent: true
}
});
var wms = new WebMapServiceImageryProvider({
url: 'http://192.168.3.200:8082/geoserver/qx/wms',
layers: 'qx:yx_wgs84',
parameters: {
service: 'WMS',
format: 'image/jpeg',
transparent: true,
styles:'',
srs:'EPSG:4326',//,
BBOX: '106.1143684387207,26.852130889892578,106.24139785766602,26.983966827392578'
}
});
// 圖層添加
viewer.imageryLayers.addImageryProvider(imageryProvider);
// 跳轉(zhuǎn)到指定坐標(biāo)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(112.070, 31.353, 500.0)
});
然后瀏覽器訪(fǎng)問(wèn)本地 Cesium 服務(wù)犁罩,就可以看到發(fā)布的數(shù)據(jù)了