日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Openlayers下载与加载geoserver的wms服务显示地图

發布時間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Openlayers下载与加载geoserver的wms服务显示地图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

GeoServer簡介、下載、配置啟動、發布shapefile全流程(圖文實踐):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109636080

在上面介紹了geoserver的使用后,怎樣通過Openlayers在html中顯示地圖。

Openlayers

OpenLayers 是一個專為Web GIS 客戶端開發提供的JavaScript 類庫包,用于實現標準格式發布的地圖數據訪問。

OpenLayers是一個開源的項目,其設計之意是為互聯網客戶端提供強大的地圖展示功能,包括地圖數據顯示與相關操作,并具有靈活的擴展機制。

OpenLayers 可以用于開發各類桌面和移動端的WEGIS系統,包括地圖顯示和地圖編輯功能。其最終的開發目標是能夠在各種設備和瀏覽器中顯示和管理地圖數據。

OpenLayers是一個專為WcbGIS客戶端開發提供的JavaScript類庫包,用于實現地圖數據的網絡訪問。它訪問地理空間數據的方法都符合行業標準,支持各種公開的和私有的數據標
準和資源。OpenLayers采用純面向對象的JavaScript方式開發,同時借用了Prototype框架和Rico庫的一些組件。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

Openlayers官網

?

點擊右上角的Code-Download進入下載頁面

https://openlayers.org/download/#

選擇dist版本進行下載

?

下載之后的內容中有相關的css文件和js文件

?

然后按照上面的博客啟動Geoserver并登陸

然后在Layer Preview中選擇一個自帶的示例的,這里以Spearfish roads為例,點擊其后面的Openlayers按鈕

?

然后會進入地圖的預覽頁面

?

接下來就是怎樣使用Openlayers在html中進行顯示這個地圖。

新建一個文件夾,文件夾下新建lib,lib下新建ol65目錄,并將上面下載的dist中的內容復制進來

然后再建立一個map.html文件

?

然后在map.html中引入上面lib目錄下的css和js文件

<link rel="stylesheet" href="lib/ol65/ol.css" type="text/css"> ?<script type="text/javascript" src="lib/ol65/ol.js"></script>

然后在body中新增一個div并設置其樣式

<divid = "map"></div><style>html,body,#map {padding: 0;margin: 0;width: 100%;height: 100%;overflow: hidden;}</style>

然后找到上面geoserver中預覽的頁面,右鍵選擇查看網頁源代碼

?

然后從網頁源代碼中抽離出用來顯示地圖的js代碼

?

然后再對其進行修改

??? <script type="text/javascript">var untiled = new ol.layer.Image({source: new ol.source.ImageWMS({ratio: 1,url: 'http://localhost:8000/geoserver/sf/wms',params: {'FORMAT': "image/jpeg",'VERSION': '1.1.1',"STYLES": '',"LAYERS": 'sf:roads',"exceptions": 'application/vnd.ogc.se_inimage',}})});var projection = new ol.proj.Projection({code: 'EPSG:26713',units: 'm',global: false});var map = new ol.Map({controls: ol.control.defaults({attribution: false}).extend([]),target: 'map',layers: [untiled,],view: new ol.View({projection: projection,})});var bounds = [589434.8564686741, 4914006.337837095,609527.2102150217, 4928063.398014731];map.getView().fit(bounds, map.getSize());</script>

注意上面的url其實就是預覽地址欄中的前面的部分

?

然后LAYERS是要和你geoserver中LayersPreview的Name屬性對應

?

完整的map.html示例代碼、

<!doctype html> <html lang="en"><head><meta charset="UTF-8"><title>OpenLayers example</title><link rel="stylesheet" href="lib/ol65/ol.css" type="text/css"><style>html,body,#map {padding: 0;margin: 0;width: 100%;height: 100%;overflow: hidden;}</style> </head><body><div id="map"></div><script type="text/javascript" src="lib/ol65/ol.js"></script><script type="text/javascript">var untiled = new ol.layer.Image({source: new ol.source.ImageWMS({ratio: 1,url: 'http://localhost:8000/geoserver/sf/wms',params: {'FORMAT': "image/jpeg",'VERSION': '1.1.1',"STYLES": '',"LAYERS": 'sf:roads',"exceptions": 'application/vnd.ogc.se_inimage',}})});var projection = new ol.proj.Projection({code: 'EPSG:26713',units: 'm',global: false});var map = new ol.Map({controls: ol.control.defaults({attribution: false}).extend([]),target: 'map',layers: [untiled,],view: new ol.View({projection: projection,})});var bounds = [589434.8564686741, 4914006.337837095,609527.2102150217, 4928063.398014731];map.getView().fit(bounds, map.getSize());</script> </body></html>

然后在瀏覽器中打開map.html,查看效果

?

總結

以上是生活随笔為你收集整理的Openlayers下载与加载geoserver的wms服务显示地图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。