免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
開源GIS
userphoto

2022.10.31 四川

關注

1 服務器搭建

http://geoserver.org/下載zip,解壓縮,在解壓路徑下的bin文件夾里雙擊startup.bat,出現(xiàn)命令簿(不可關閉)。

在瀏覽器中輸入http://localhost:8080,出現(xiàn)下圖。這時可以設置GeoServer的管理員賬號。賬號admin,密碼geoserver。

該圖即為GeoServer在服務器上的首頁。可以在本頁進行數(shù)據(jù)的連接和發(fā)布。

2 地理信息數(shù)據(jù)導入及發(fā)布

在本段中,筆者將使用中國2014GDP數(shù)據(jù)作為例子,進行數(shù)據(jù)的發(fā)布。

對于地理信息數(shù)據(jù)的導入,需要使用到空間數(shù)據(jù)庫。在本文中,筆者使用的是PostgreSQL+PostGIS完成這一任務。接下來,將詳細介紹如何導入數(shù)據(jù)。

首先去PostgreSQL官方網(wǎng)站下載最新版的軟件,推薦9.5及以前的版本:

https://www.postgresql.org/

安裝的時候需要注意記住數(shù)據(jù)庫訪問的賬號和密碼,為了方便,均可以設置為postgres作為測試。設置端口為默認值5432.

在安裝完成后,可以繼續(xù)安裝PostgreSQL的插件管理軟件,其中可以選擇PostGIS進行安裝,也可以前往PostGIS的官方網(wǎng)站進行下載:

http://www.postgis.org/

在安裝的過程中,注意勾選安裝空間數(shù)據(jù)庫。需要登錄PostgreSQL數(shù)據(jù)庫時,使用先前設定的賬號密碼即可。

安裝結束后,打開pgAdmin管理工具,可以對PostgreSQL進行管理。

首先是連接PostgreSQL,接下來可以通過右鍵(點擊數(shù)據(jù)庫)或者使用SQL語句,根據(jù)需要,新建一個數(shù)據(jù)庫。

建立完成數(shù)據(jù)庫后,點擊該數(shù)據(jù)庫下的架構->public->數(shù)據(jù)表,使用SQL語句添加空間數(shù)據(jù)庫管理插件PostGIS:

CREATE EXTENSION PostGIS

成功后,刷新,數(shù)據(jù)表中會出現(xiàn)spatial_ref_sys,說明可以導入空間數(shù)據(jù)了。

點擊pgAdmin上方的插件,選擇PostGIS插件,可以導入shp文件。選擇Add File,通過路徑選擇shp文件,再點擊import,即可導入文件。

此時數(shù)據(jù)已經(jīng)導入了空間數(shù)據(jù)庫,可以進行數(shù)據(jù)發(fā)布的操作了。

打開瀏覽器,進入GeoServer首頁,點擊左側的工作區(qū)(Workspaces),再點擊添加新的工作區(qū)(Add new workspaces)可以創(chuàng)建工作空間。工作空間的作用是在于將不同數(shù)據(jù)來源的數(shù)據(jù)保存在一起。在設置URI時,須設置為http://localhost:8080/CHINA,CHINA代表的是工作空間的名字,這樣所有與之相關的網(wǎng)頁均在這個URI之后。

接下來點擊數(shù)據(jù)存儲(Stores),再點擊添加新的數(shù)據(jù)存儲(Add new store),可以添加一個新的數(shù)據(jù)源。從圖中我們可以看出,GeoServer支持多種數(shù)據(jù)類型。在這里我們以PostGIS為例進行服務的發(fā)布。

點擊PostGIS選項,進入數(shù)據(jù)源信息的頁面。先點擊工作區(qū)(Workspace)下拉選項,可以選擇具體的工作空間,例如本文中選擇CHINA。

接下來輸入數(shù)據(jù)源名稱,這是標識不同數(shù)據(jù)的依據(jù),例如本文中輸入GDP。

在連接參數(shù)中,輸入host,若為本機則為localhost,端口5432,再輸入數(shù)據(jù)源在PostgreSQL中的數(shù)據(jù)庫名稱,之后輸入連接PostgreSQL的賬號和密碼即可完成數(shù)據(jù)庫的連接。

在最下面點擊保存即可。

接下來就要發(fā)布具體的圖層了。點擊圖層(Layers),即可進入圖層選擇界面;再點擊添加一個新圖層(Add a new resource),即可發(fā)布具體的圖層。點擊后,先選擇具體的數(shù)據(jù)源,會出現(xiàn)該數(shù)據(jù)源下的各種表,選擇需要發(fā)布為圖層的數(shù)據(jù)表,點擊發(fā)布(publish),即可進行發(fā)布。

可以根據(jù)需要輸入圖層名稱,也可以直接使用默認的圖層名稱。需要注意的是地圖投影的定義:

在這里可以輸入地圖投影。如果原圖沒有投影,將不會進行顯示,在這里可以點擊Find,輸入投影的代碼(如WGS84為4326)進行查找。接下來在下方的范圍中,點擊從數(shù)據(jù)中計算(Compute from data),即可算出范圍。

其他的文本框可以不填。保存之后即為圖層的發(fā)布。

為了查看發(fā)布后的效果,可以點擊左側的Layer Preview,找到剛剛發(fā)布的內容。GeoServer提供了多種數(shù)據(jù)格式可以調用。點擊OpenLayers可以直接看到使用OpenLayers調用的圖層。

在下拉選框中還可以選擇WMS和WFS服務等。這些也就構成了服務器端的數(shù)據(jù)。

3 使用OpenLayers作為前端

筆者使用OpenLayers進行前端的編寫。目前最新的版本是OpenLayers3,可以前往GitHub下載代碼:

https://github.com/openlayers/openlayers

其中包含了css文件和js文件,在寫前端時需要包含在網(wǎng)頁中:

<link rel="stylesheet" type="text/css" href="CSS/ol.css" />

<script type="text/javascript" src="Scripts/ol.js"></script>

其API文檔在官方網(wǎng)站上有:

http://openlayers.org/en/latest/apidoc/

也可以參考官方給出的案例進行學習:

http://openlayers.org/en/latest/examples/

此外,為了完成能夠完成前后端的交互,還應下載jQuery。

http://jquery.com/download/

之后也應將其添加在網(wǎng)頁中。

OpenLayers的核心部件為Map (ol.map),相當于地圖的容器。整個地圖的數(shù)據(jù)就是通過該部件進行顯示。

Map中包含了Layer圖層控件和View視圖控件,分別是對于圖層數(shù)據(jù)的操控和對于用戶視圖的操控。Layer (ol.layer)控制數(shù)據(jù)的可視化顯示,支持Tile (瓦片地圖)、Image (影像數(shù)據(jù))、Vector (矢量數(shù)據(jù))的顯示;而View (ol.view)控制地圖的中心點、放大、投影等設置。

添加一個地圖并進行顯示的js代碼如下:

 

  1. 1 <div id="map">
  2. 2 <script>
  3. 3 var format = 'image/png';
  4. 4 var bounds = [73.441277, 18.159829,
  5. 5 135.08693, 53.561771];//范圍
  6. 6
  7. 7 //中國各省底圖(面)
  8. 8 var ImageMap = new ol.layer.Image({
  9. 9 source: new ol.source.ImageWMS({
  10. 10 ratio: 1,
  11. 11 //自己的服務url
  12. 12 url: 'http://localhost:8080/geoserver/CHINA/wms',
  13. 13 //設置服務參數(shù)
  14. 14 params: {
  15. 15 'FORMAT': format,
  16. 16 'VERSION': '1.1.0',
  17. 17 STYLES: '',
  18. 18 //圖層信息
  19. 19 LAYERS: 'CHINA:china_2014gdp',
  20. 20 }
  21. 21 })
  22. 22 });
  23. 23
  24. 24 //設置地圖投影
  25. 25 var projection = new ol.proj.Projection({
  26. 26 code: 'EPSG:4326',//投影編碼
  27. 27 units: 'degrees',
  28. 28 axisOrientation: 'neu'
  29. 29 });
  30. 30
  31. 31 //設置地圖
  32. 32 var map = new ol.Map({
  33. 33 //地圖中的比例尺等控制要素
  34. 34 controls: ol.control.defaults({
  35. 35 attribution: false
  36. 36 }).extend([
  37. 37 new ol.control.ScaleLine()
  38. 38 ]),
  39. 39 //設置顯示的容器
  40. 40 target: 'map',
  41. 41 //設置圖層
  42. 42 layers: [
  43. 43 //添加圖層
  44. 44 ImageMap
  45. 45 ],
  46. 46 //設置視圖
  47. 47 view: new ol.View({
  48. 48 //設置投影
  49. 49 projection: projection
  50. 50 })
  51. 51 });
  52. 52
  53. 53 //地圖顯示
  54. 54 map.getView().fit(bounds, map.getSize());
  55. 55 </script>
  56. 56 </div>

首先需要定義一個圖層,而這個圖層調用的是由GeoServer發(fā)布的WMS服務,其數(shù)據(jù)源是服務的url,可以通過進入服務器,找到相應服務,點擊相應的WMS服務獲取其url。

接下來需要設置顯示的格式,這里設置了地圖投影為WGS84,即代號4326.

之后創(chuàng)建了地圖容器map,將圖層添加進去,并設置了投影。

接下來分別設置了地圖初始的顯示范圍,最后調用getView().fit函數(shù),顯示地圖。

 

具體代碼和數(shù)據(jù)可以參考github:https://github.com/kkyyhh96/WebGIS

參考:天靖居士:http://www.cnblogs.com/kkyyhh96/

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在局域網(wǎng)中搭建自己的gis服務器
關于WEBGIS系統(tǒng)的一點理解
OpenLayers 6 學習筆記2 WMS服務避坑記錄
客戶端兩種獲取要素屬性的方法
WebGIS 開發(fā)人員的學習指南
使用GeoServer發(fā)布shp數(shù)據(jù)為WMS服務和WFS服務(圖文教程)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服