999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GeoJSON和HTML5 Canvas的WebGIS應(yīng)用研究

2017-12-28 15:32:03陳吉輝
無(wú)線互聯(lián)科技 2017年21期
關(guān)鍵詞:分析系統(tǒng)

陳吉輝

(電子科技大學(xué)成都學(xué)院,四川 成都 611731)

基于GeoJSON和HTML5 Canvas的WebGIS應(yīng)用研究

陳吉輝

(電子科技大學(xué)成都學(xué)院,四川 成都 611731)

信息管理系統(tǒng)或者監(jiān)控系統(tǒng),有時(shí)需要運(yùn)用地理信息系統(tǒng)的部分功能,而建立一套完整的GIS系統(tǒng)需要較大的資金和技術(shù)投入。文章基于HTML5 Canvas技術(shù),分析了GeoJSON的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)了地圖數(shù)據(jù)在Web平臺(tái)上的應(yīng)用,其具有跨平臺(tái)、輕量和響應(yīng)快的特點(diǎn)。

GeoJSON;HTML5 Canvas;WebGIS

1 GIS系統(tǒng)現(xiàn)狀

近些年來(lái),地理信息系統(tǒng)(Geographic Information System,GIS)得到了廣泛的應(yīng)用,比如網(wǎng)約車、導(dǎo)航應(yīng)用、外賣等,一些傳統(tǒng)的信息管理系統(tǒng)和監(jiān)控系統(tǒng),也融入了GIS系統(tǒng)的部分功能,以地圖為基礎(chǔ)來(lái)進(jìn)行信息展示,獲得更好的人機(jī)交互體驗(yàn)。

而建立一套完整的GIS系統(tǒng),需要以商業(yè)的GIS平臺(tái)軟件為支撐,比如ArcGIS,或者租用網(wǎng)絡(luò)GIS平臺(tái),利用其提供的應(yīng)用程序界面(Application Program Interface,API)來(lái)做二次開(kāi)發(fā),這意味著較大的資金和人力投入,對(duì)于很多系統(tǒng)來(lái)講,往往只需要GIS系統(tǒng)的部分功能,如地圖顯示、漫游、標(biāo)注等基本功能。

本文通過(guò)對(duì)GeoJSON的格式分析,結(jié)合HTML5 Canvas技術(shù),實(shí)現(xiàn)了一個(gè)輕量級(jí)的WebGIS中間件對(duì)象,可以很方便地嵌入到WEB應(yīng)用中。

2 GeoJSON格式分析

GeoJSON是一種對(duì)各種地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式[1],基于Javascript對(duì)象表示法的地理空間信息數(shù)據(jù)交換格式,它支持開(kāi)放地理信息系統(tǒng)協(xié)會(huì)(Open GIS Consortium,OGC)定義的以下幾種幾何類型:Point,LineString,Polygon,MultiPoint,MultiLineString,MultiPolygon和GeometryCollection。任何OGC標(biāo)準(zhǔn)下的地理數(shù)據(jù)類型都可以方便地通過(guò)GeoJSON進(jìn)行描述。

GeoJSON的主要對(duì)象描述[2]如下。

點(diǎn):

{ “type”: “Point”, “coordinates”: [101.0, 102.0] }

線 LineString:

{ “type”: “LineString”,

“coordinates”: [ [101.0, 1.0], [102.0, 2.0] ]

}

面:

{ “type”: “Polygon”,“coordinates”:

[ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0],[100.0, 0.0] ] ]

}

多點(diǎn):

{ “type”: “MultiPoint”,“coordinates”: [ [100.0, 0.0],[101.0, 1.0] ]

}

多線 MultiLineString:

{ “type”: “MultiLineString”,“coordinates”: [

[ [100.0, 0.0], [101.0, 1.0] ],

[ [102.0, 2.0], [103.0, 3.0] ] ]

}

多面:

{ “type”: “MultiPolygon”,“coordinates”: [

[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0],[102.0, 2.0]]],

[[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0],[100.0, 0.0]],

[[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8],[100.2, 0.2] ] ] ]

}

空間對(duì)象集合:

{ “type”: “GeometryCollection”,

“geometries”: [

{ “type”: “Point”, “coordinates”: [100.0, 0.0] },

{ “type”: “LineString”,“coordinates”: [ [101.0, 0.0],[102.0, 1.0] ] }

]

}

對(duì)象集合:

{“name”:“subway_point”,“type”:“FeatureCollecti on”,

“features”:[

{“type”:“Feature”,“geometry”:{“type”:“Point”,“coordinates”:[116.189086914,39.938293]},

“properties”:{“OBJECTID”:1}}

,{“type”:“Feature”,“geometry”:{“type”:“Point”,“coordinates”:[116.197875976,39.9296]},“properties”:{“OBJECTID”:2}}]

}

分析其結(jié)構(gòu)組成,可以發(fā)現(xiàn),針對(duì)多點(diǎn)、多線、多面、集合對(duì)象在處理時(shí)都可以拆解為單個(gè)的點(diǎn)、線、面進(jìn)行處理。

3 HTML5 Canvas繪制地圖

HTML5 canvas 是一個(gè)原生HTML繪圖簿,用于JavaScript代碼,不使用第三方工具。canvas已經(jīng)可以在幾乎所有現(xiàn)代瀏覽器上良好運(yùn)行了。HTML5提供了Canvas API,可以通過(guò)JavaScript在瀏覽器不依賴任何插件的情況下高效地繪制動(dòng)態(tài)圖形。

通用上一節(jié)對(duì)GeoJSON格式分析,地圖信息都可以拆解為單個(gè)的點(diǎn)、線、面來(lái)進(jìn)行處理,相應(yīng)的我們需要在應(yīng)用開(kāi)發(fā)中,通過(guò)JavaScript來(lái)實(shí)現(xiàn)這些基本操作,Canvas API的使用比較簡(jiǎn)單,繪圖工作由JavaScript完成。其工作過(guò)程如下。

定義Canvas元素:

Var extra_canvas=document.createElement(‘canvas’);得到Canvas畫布對(duì)象:

Var Canvas = extra_canvas.getContext(‘2d’);

然后就可以使用API提供的路徑繪制函數(shù),如beginPath開(kāi)始繪制,moveTo,lineTo繪制直線,fill,stroke進(jìn)行填充或者設(shè)置邊框,最后closePath結(jié)束圖形繪制。Canvas的路徑操作能充分滿足矢量數(shù)據(jù)中的點(diǎn)要素、線要素、面要素以及符號(hào)的表達(dá)要求。

HTML5 Canvas畫點(diǎn)和線:

function DrawPoint(Canvas, Point){

with (Canvas)

{

moveTo(Point[0], Point [1]);

lineTo(Point [0]+1, Point [1]+1);

}}

HTML5 Canvas畫面:

function DrawPolygon(Canvas,Poly)

{

with (Canvas)

{

beginPath();

moveTo(Poly[0].x,Poly[0].y);

for(var i=0;ilt;Poly.length;i++)

l i n e T o(P o l y[i].

x,Poly[i].y);

stroke();

}

}

4 GeoJSON數(shù)據(jù)的獲取及繪制流程

JSON 文件被放置在服務(wù)器端,客戶端請(qǐng)求該文件使用Ajax異步請(qǐng)求[3]。

var jsondata = CreateXHR();

jsondata.open(quot;GETquot;,quot;test.jsonquot;,true);//服務(wù)器端有一個(gè)文件test.json,請(qǐng)求并輸出。

jsondata.send();

jsondata.onreadystatechange = function(){

if(jsondata.readyState == 4 amp;amp; jsondata.status ==200){

var jsonstr = jsondata.responseText;

console.log(jsonstr);

}

}

從服務(wù)器獲取GeoJSON數(shù)據(jù)后,其被轉(zhuǎn)化為JavaScript對(duì)象jsonstr,根據(jù)jsonstr的信息,經(jīng)過(guò)坐標(biāo)轉(zhuǎn)換后,調(diào)用Canvas畫圖功能來(lái)實(shí)現(xiàn)繪圖和地圖的顯示。

5 結(jié)語(yǔ)

傳統(tǒng)GIS的體系結(jié)構(gòu)是封閉的,而Web的本質(zhì)特征就是其開(kāi)放性,因此WebGIS的體系結(jié)構(gòu)應(yīng)該具備開(kāi)放、互操作、可升級(jí)、可擴(kuò)展的特性。本文通過(guò)對(duì)GeoJSON的格式分析,結(jié)合HTML5 Canvas與JavaScript技術(shù),無(wú)需復(fù)雜的GeoServer,為實(shí)現(xiàn)WebGIS提供了一種簡(jiǎn)單易行的方案。

[1]GeoJSON.The GeoJSON Specification (RFC 7946)[EB/OL].(2017-07-22)[2017-10-24].http://geojson.org.

[2]Wikipedia.GeoJSON[EB/OL].(2017-10-20)[2017-10-24].https://en.wikipedia.org/wiki/GeoJSON.

[3]徐卓揆.基于HTML5、Ajax和Web Service的WebGIS研究[J].測(cè)繪科學(xué),2012(1):145-147.

Research on application of WebGIS based on GeoJSON and HTML5 Canvas

陳吉輝(1966— ),女,四川自貢人,高級(jí)工程師,副教授,學(xué)士;研究方向:計(jì)算應(yīng)用,航空電子。

Chen Jihui
(Chengdu College of University of Electronic Science and Technology of China, Chengdu 611731, China)

Information management system or monitoring system, sometimes need to use some of the functions of geographic information system, and establishing a complete GIS system requires greater funding and technical input. Based on HTML5 Canvas technology, this article analyzes the GeoJSON data structure, realizes the application of map Data on the Web platform, with the characteristics of crossplatform, lightweight and fast response.

GeoJSON; HTML5 Canvas; WebGIS

猜你喜歡
分析系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
隱蔽失效適航要求符合性驗(yàn)證分析
ZC系列無(wú)人機(jī)遙感系統(tǒng)
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
主站蜘蛛池模板: 国产综合精品日本亚洲777| 国产网友愉拍精品视频| 精品国产免费观看| 动漫精品中文字幕无码| 亚洲国产系列| 五月综合色婷婷| 亚洲国产成人精品无码区性色| 亚洲国产日韩欧美在线| 亚洲国产天堂久久综合226114 | 99在线小视频| 色男人的天堂久久综合| 亚洲欧洲自拍拍偷午夜色| 麻豆精品在线| 自拍中文字幕| 国产成人精品免费视频大全五级| 国产特级毛片aaaaaa| 亚洲人成电影在线播放| 日本三级欧美三级| 欧美精品亚洲精品日韩专区| 亚洲无码电影| 国产欧美亚洲精品第3页在线| 国产成人一二三| 四虎影视8848永久精品| a级毛片免费播放| 国产成人高清精品免费软件| 色视频国产| 日本高清成本人视频一区| 久久人搡人人玩人妻精品一| 亚洲高清在线天堂精品| 99热这里只有精品在线观看| 亚洲国产中文在线二区三区免| 99久久99视频| 91视频区| 国产成人免费视频精品一区二区| 找国产毛片看| 日韩欧美色综合| 在线观看国产黄色| 91精品国产91久久久久久三级| 成人国产精品2021| 国产日韩丝袜一二三区| 久久国产av麻豆| 热九九精品| 成人久久精品一区二区三区| m男亚洲一区中文字幕| 久久五月天国产自| 99久久亚洲精品影院| 国产浮力第一页永久地址 | 国产精品手机在线观看你懂的| 久久夜色精品国产嚕嚕亚洲av| 欧美日韩国产在线观看一区二区三区 | 亚洲精品欧美日本中文字幕| 亚洲最黄视频| 成年人福利视频| 亚洲人成影视在线观看| 精品欧美一区二区三区在线| 日韩精品一区二区三区中文无码 | 国产精品va| 欧美性天天| 美女扒开下面流白浆在线试听| 精品一区二区三区自慰喷水| 久视频免费精品6| 第九色区aⅴ天堂久久香| 久久久久久午夜精品| 天天干天天色综合网| 亚洲精品国产综合99久久夜夜嗨| 香蕉视频在线观看www| 亚洲第一区在线| 亚洲大学生视频在线播放| 国产十八禁在线观看免费| 久久综合丝袜日本网| 色欲不卡无码一区二区| 亚洲AV成人一区二区三区AV| 亚洲AV无码乱码在线观看裸奔| 国产毛片一区| 国产精品欧美日本韩免费一区二区三区不卡 | 欧美日韩免费| 午夜日韩久久影院| 99精品欧美一区| 91偷拍一区| 中文国产成人久久精品小说| 亚洲毛片一级带毛片基地| 国产手机在线观看|