亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GeoJSON和HTML5 Canvas的WebGIS應用研究

        2017-12-28 15:32:03陳吉輝
        無線互聯(lián)科技 2017年21期
        關鍵詞:繪圖繪制成都

        陳吉輝

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

        基于GeoJSON和HTML5 Canvas的WebGIS應用研究

        陳吉輝

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

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

        GeoJSON;HTML5 Canvas;WebGIS

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

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

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

        本文通過對GeoJSON的格式分析,結合HTML5 Canvas技術,實現(xiàn)了一個輕量級的WebGIS中間件對象,可以很方便地嵌入到WEB應用中。

        2 GeoJSON格式分析

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

        GeoJSON的主要對象描述[2]如下。

        點:

        { “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] ] ]

        }

        多點:

        { “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] ] ] ]

        }

        空間對象集合:

        { “type”: “GeometryCollection”,

        “geometries”: [

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

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

        ]

        }

        對象集合:

        {“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}}]

        }

        分析其結構組成,可以發(fā)現(xiàn),針對多點、多線、多面、集合對象在處理時都可以拆解為單個的點、線、面進行處理。

        3 HTML5 Canvas繪制地圖

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

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

        定義Canvas元素:

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

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

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

        HTML5 Canvas畫點和線:

        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 文件被放置在服務器端,客戶端請求該文件使用Ajax異步請求[3]。

        var jsondata = CreateXHR();

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

        jsondata.send();

        jsondata.onreadystatechange = function(){

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

        var jsonstr = jsondata.responseText;

        console.log(jsonstr);

        }

        }

        從服務器獲取GeoJSON數(shù)據(jù)后,其被轉化為JavaScript對象jsonstr,根據(jù)jsonstr的信息,經過坐標轉換后,調用Canvas畫圖功能來實現(xiàn)繪圖和地圖的顯示。

        5 結語

        傳統(tǒng)GIS的體系結構是封閉的,而Web的本質特征就是其開放性,因此WebGIS的體系結構應該具備開放、互操作、可升級、可擴展的特性。本文通過對GeoJSON的格式分析,結合HTML5 Canvas與JavaScript技術,無需復雜的GeoServer,為實現(xiàn)WebGIS提供了一種簡單易行的方案。

        [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].測繪科學,2012(1):145-147.

        Research on application of WebGIS based on GeoJSON and HTML5 Canvas

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

        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

        猜你喜歡
        繪圖繪制成都
        Art on coffee cups
        來自河流的你
        中國三峽(2022年7期)2022-12-02 05:28:02
        “禾下乘涼圖”繪圖人
        學與玩(2022年10期)2022-11-23 08:31:08
        穿過成都去看你
        青年歌聲(2019年2期)2019-02-21 01:17:20
        放學后
        童話世界(2018年17期)2018-07-30 01:52:02
        數(shù)看成都
        先鋒(2018年2期)2018-05-14 01:16:16
        基于HTML5 Canvas繪圖技術應用
        電子測試(2018年4期)2018-05-09 07:28:32
        成都
        汽車與安全(2016年5期)2016-12-01 05:21:56
        Surfer和ArcView結合在氣象繪圖中的應用
        河北遙感(2015年2期)2015-07-18 11:11:14
        在轉變中繪制新藍圖
        女人夜夜春高潮爽a∨片传媒| 91美女片黄在线观看| 91网站在线看| 中文字幕无码高清一区二区三区| 在线观看免费的黄片小视频| 中文字幕综合一区二区三区| 亚洲日韩精品无码专区网址| 国产精品欧美一区二区三区不卡| 狠狠色噜噜狠狠狠狠色综合久| 亚洲AV综合久久九九| 一区二区三区国产大片| 国产av自拍视频在线观看| 人人妻人人澡人人爽人人精品97| 亚洲天堂资源网| 亚洲中文字幕在线精品2021| 变态调教一区二区三区女同| 天天影视性色香欲综合网| 国产一级免费黄片无码AV| 午夜一区二区三区在线视频| 日本免费精品一区二区| 99精品人妻无码专区在线视频区 | 国产真实伦在线观看| 福利视频一二区| 国产伦理一区二区久久精品| 五月四房播播| 国产美女遭强高潮网站| 久久精品国产亚洲av热明星| 国产av麻豆精品第一页| 亚洲欧美综合精品成人网站| 18无码粉嫩小泬无套在线观看| 巨爆乳中文字幕爆乳区| 国产亚洲精品综合一区二区| 亚洲av色香蕉一区二区三区| 精品人妻潮喷久久久又裸又黄| 亚洲AV秘 无码一区二区久久| 中文字幕国产亚洲一区| 久久久久亚洲av无码专区首jn| 国产最新AV在线播放不卡| 国产一区二区在线中文字幕| 国产a级三级三级三级| 人妻去按摩店被黑人按中出|