GIS開(kāi)發(fā):C#到JavaScript的轉(zhuǎn)化過(guò)程
2008年開(kāi)始涉及到GIS開(kāi)發(fā)這一塊,最初使用C#開(kāi)發(fā)桌面端應(yīng)用程序、數(shù)據(jù)處理工具,web端同樣以C#語(yǔ)言為基礎(chǔ)的.net技術(shù)開(kāi)發(fā),到現(xiàn)在使用JavaScript語(yǔ)言,開(kāi)發(fā)各類(lèi)地圖的web端應(yīng)用,同樣以JavaScript語(yǔ)言為基礎(chǔ)的nodejs技術(shù)開(kāi)發(fā)數(shù)據(jù)處理工具。
最初的時(shí)候,地圖開(kāi)發(fā)、處理工具,都以桌面端軟件形式存在,特別是三維的GIS軟件,因性能的關(guān)系,GIS數(shù)據(jù)通常也比較大,二維地圖Arcgis為主,超圖開(kāi)始發(fā)展起來(lái),三維的有skyline、谷歌地球、偉景行等,國(guó)內(nèi)計(jì)算機(jī)使用的操作系統(tǒng)主要是windows為主,在開(kāi)發(fā)桌面程序時(shí),使用C#語(yǔ)言,開(kāi)發(fā)起來(lái)省事,難度要比C++低很多,開(kāi)發(fā)的速度也快,所以,用C#開(kāi)發(fā)的也挺多,畢竟要是用java、C++,要省事很多。
當(dāng)時(shí)Arcgis的web端JavaScript庫(kù)在很多項(xiàng)目應(yīng)用,但是,web端的框架當(dāng)時(shí)很少,開(kāi)發(fā)web端的程序還挺復(fù)雜的,在協(xié)同開(kāi)發(fā)方面表現(xiàn)的相對(duì)來(lái)說(shuō)差很多,開(kāi)源的以JavaScript為基礎(chǔ)的web地圖庫(kù)有openlayer、leaflet等,前端頁(yè)面上不能夠動(dòng)態(tài)繪制大量的元素(Feature),通常是以后臺(tái)處理成地圖瓦片的形式進(jìn)行加載;三維web端的開(kāi)發(fā),一般以IE的ActiveX控件為基礎(chǔ)開(kāi)發(fā),才能承載較大的數(shù)據(jù)量,64位計(jì)算機(jī)使用較少時(shí),IE的最大內(nèi)存使用量,莫名的瀏覽器崩潰,導(dǎo)致系統(tǒng)的體驗(yàn)不好。
隨著webgl技術(shù)的發(fā)展,谷歌旗下的chrome瀏覽器不斷更新,JavaScript涌現(xiàn)出各類(lèi)的開(kāi)發(fā)框架,web端的gis應(yīng)用越來(lái)越多,開(kāi)源的gis庫(kù)cesium、mapbox-gl等一系列也發(fā)展起來(lái),web端gis的數(shù)據(jù)加載量越來(lái)越大,使用C#開(kāi)發(fā)桌面端應(yīng)用程序就變少了,因?yàn)橐话愕淖烂娑嘶谏虡I(yè)軟件二次開(kāi)發(fā),還需要平臺(tái)費(fèi)用,特別是cesium火起來(lái)的時(shí)候,涌現(xiàn)出各種基于cesium的三維地圖應(yīng)用。
JavaScript同時(shí)提供了一個(gè)跨平臺(tái)桌面端解決方案-Electron,讓開(kāi)發(fā)者能夠基于JavaScript開(kāi)發(fā)一套代碼,在windows\mac\linux操作系統(tǒng)上都能夠運(yùn)行,使用戶在數(shù)據(jù)量不是很大的情況,實(shí)現(xiàn)桌面端的二維、三維gis應(yīng)用。
gdal、proj4等常用的gis庫(kù),能夠通過(guò)nodejs進(jìn)行調(diào)用,使用戶在數(shù)據(jù)處理時(shí),也能夠使用JavaScript進(jìn)行開(kāi)發(fā)。