從零編寫Openlayers前端系統(tǒng)(2宴霸、顯示地圖)

????????從決定寫這個前端程序到著手镜盯,其實只有幾周的時間,JS的使用也是邊學邊練猖败,更不談Openlayers了速缆。補充說明下,使用的Openlayers是3.X的版本恩闻,HTML采用的是ES5艺糜。

????????參考了網上大神和Openlayers官網,本人著手寫上第一段代碼幢尚。具體如下:

wms_url =? 'http://172.16.40.159:8086/geoserver/wangxiang/wms';

wms_layer ='wangxiang:aa_pol';

format = 'image/png';

bounds = [31120.72077001582, -31306.5768763267, 33942.44450440404,-26589.81571753572];?? //范圍

?//本地SHP實例

wmsSource=new ol.source.ImageWMS({

??????????????? ratio: 1,

??????????????? url: wms_url,?????????????????? //自己的服務url

??????????????? params: {???????????????????????? //設置服務參數

??????????????????? 'FORMAT': format,

??????????????????? 'VERSION': '1.1.1',

??????????????????? STYLES: '',

??????????????????? LAYERS: wms_layer,?????????? //圖層信息

??????????????? }

? })

wmsLayer=new ol.layer.Image({?

????????????????????????? source:wmsSource?

??? ??????????????????????????? });

?//設置地圖投影

projection = new ol.proj.Projection({

???????????code: 'EPSG:3857',//投影編碼

???????????units: 'degrees',

???????????axisOrientation: 'neu'

?});


view=new ol.View({????? //設置視圖

???????????projection: projection?? //設置投影

?});

//設置地圖

map = new ol.Map({

???????????controls: ol.control.defaults({?????//地圖中的比例尺等控制要素

??????????????? attribution: false

???????????}).extend([

? ? ? ? ? ?new ol.control.ScaleLine()

???????????]),

???????????target: 'map',?????????? //設置顯示的容器

???????????layers: [],??????????????? //設置圖層??

???????????view: view

?});

function init(){

? ? map.addLayer(wmsLayer);

? ? map.getView().fit(bounds,map.getSize());??? //地圖顯示

};

<body onload="init()"> </body>

????????這段代碼是我萬里長征的第一步破停,可以說是網上直接挪過來的,經調試后尉剩,已能顯示地圖真慢。很開心。理茎。黑界。。再補充說明幾點吧皂林。

? ? ? ? 1朗鸠、wmsSource里的參數

? ? ? ? 先要學會用Geoserver。在設置好Geoserver后(這個網上有好多教程础倍,不抄了)烛占,點擊:Layer Preview

? ? ? ? 然后在要預覽的GIS數據欄上點擊

? ? ? ? 然后就能以WMS的PNG方式預覽了,這時的預覽地址為:

? ? ? ?http://172.16.40.159:8086/geoserver/wx/wms?service=WMS&version=1.1.0&request=GetMap&layers=wx:aa_pol&styles=&bbox=31120.72077001582,-31306.5768763267,33942.44450440404,-26589.81571753572&width=459&height=768&srs=EPSG:3857&format=image%2Fpng

? ? ? ? 好長一段沟启,分段看就不復雜了忆家。

? ? ? ? (1)服務器地址,很明顯就是“?http://172.16.40.159:8086/geoserver/wx/wms”德迹,“芽卿?”后是這個服務器的GET參數,這個結構很清晰浦辨。

? ? ? ? (2)?params類中的參數蹬竖,以及bounds沼沈,也很明顯流酬,就是“币厕?”后的各項參數,每項參數的具體含義芽腾,參見:

????????????????????http://www.cnblogs.com/naaoveGIS/p/5508882.html

? ? ? ? 2旦装、這段代碼其實和Geoserver的preview的作用一樣的,我當時就想摊滔,為什么不能直接用這個預覽地址呢阴绢?由于代碼是抄的,別人沒提及艰躺,也不知道呻袭,其實對于WMS方式,還有種懶惰寫法腺兴,就是直接將preview的地址粘入JS中即可:

wms_url="http://172.16.40.159:8086/geoser.......768&srs=EPSG:3857&format=image%2Fpng"

wmsSource=new ol.source.ImageWMS({

??????????????? ratio: 1,

??????????????? url: wms_url ? ? ? ? ? ? ??

? })

? ? ? ? 這就可以了:)

? ? ? ? 3左电、“map.getView().fit(bounds,map.getSize())” 這句刷新地圖的代碼。這段代碼搞了好多時間页响。不是因為代碼不對篓足,而是因為Openlayers3和Openlayers2的刷新方式不同,在讀別人的代碼時闰蚕,當時還不是很理解栈拖,所以一直用Openlayers2的刷新代碼,因此一直不能顯示地圖没陡。血的教訓涩哟。

? ? ? ? 4、為十么用WMS的方式顯示地圖呢盼玄?很簡單染簇,當時還很無知。大神們這么寫强岸,我就這么用锻弓。后來才覺得,可能因為其他大神的代碼往往是從大型GIS數據庫中汲取數據蝌箍,數據若以矢量數據方式獲取青灼,服務器需提供矢量瓦片地圖,但目前大多開發(fā)地圖都不提供矢量瓦片地圖數據妓盲,只提供柵格圖片杂拨,所以我覺得大神們的示例也因此大多采用WMS獲取數據。其實我的程序用WMS方式不是最好的辦法悯衬,后來被我改了弹沽。那是后話......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子策橘,更是在濱河造成了極大的恐慌炸渡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丽已,死亡現場離奇詭異蚌堵,居然都是意外死亡,警方通過查閱死者的電腦和手機沛婴,發(fā)現死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門吼畏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘁灯,你說我怎么就攤上這事泻蚊。” “怎么了丑婿?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵性雄,是天一觀的道長。 經常有香客問我枯冈,道長毅贮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任尘奏,我火速辦了婚禮滩褥,結果婚禮上,老公的妹妹穿的比我還像新娘炫加。我一直安慰自己瑰煎,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布俗孝。 她就那樣靜靜地躺著酒甸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赋铝。 梳的紋絲不亂的頭發(fā)上插勤,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音革骨,去河邊找鬼农尖。 笑死,一個胖子當著我的面吹牛良哲,可吹牛的內容都是我干的盛卡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼筑凫,長吁一口氣:“原來是場噩夢啊……” “哼滑沧!你這毒婦竟也來了并村?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤滓技,失蹤者是張志新(化名)和其女友劉穎哩牍,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體殖属,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡姐叁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年瓦盛,在試婚紗的時候發(fā)現自己被綠了洗显。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡原环,死狀恐怖挠唆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情嘱吗,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站确垫,受9級特大地震影響公黑,放射性物質發(fā)生泄漏。R本人自食惡果不足惜绕德,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一患膛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耻蛇,春花似錦踪蹬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至夺蛇,卻和暖如春疚漆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刁赦。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工娶聘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人截型。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓趴荸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宦焦。 傳聞我的和親對象是個殘疾皇子发钝,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354