怎麼正確的走GIS開發這條路?
我是一名普通二本GIS專業本科生,畢業後想從事GIS開發的工作。大一學了C語言,暑期在老師公司做了個項目,導致能看懂基本的html 和js。大二學了C++和數據結構以及空間資料庫。據了解,WebGIS比較火,所以現在大三正在自學JAVA EE,目前學完了jsp、servlet等基礎,正在接觸SSH框架 ,可是現在我越學越糊塗,我學了的這些東西到底怎麼跟webgis結合起來呢?所以我前段時間去arcgis developer的網站上看了下,發現做webgis都是用前端語言js,難道JS才是webgis的主要技能?好,我也嘗試了下利用arcgis for js api demo去弄了下地圖的一些基礎功能,倖幸苦苦調了兩個禮拜吧,功能才做了幾個,老師最近也開始講webgis的課,老師讓我們利用 http://arcgis.com網站在線製作webgis,分分鐘不用編程就能弄好一個gis系統。所以我學的東西怎麼才能用上呢?
最後總結下我想問的吧:
1、gis開發到底要學什麼?語言主要學什麼?
2、有沒有一些好的webgis案例?
3、工作中webgis開發到底是前端工作還是後台工作?
先提建議:1、學好計算機編程語言;2、學好計算機編程語言;(重複兩遍是因為這是開發的前提)3、找個實習工作,工作+學習;4、結合gis專業知識,在用自己擅長的技能做產品,不管是做項目還是開發演算法等。簡單總結:1、編程語言怎麼學就不說了,現在資源那麼多,教程和書籍滿天飛;剩下靠自己2、開發技能掌握了,你就能進it行業,也就是你可以成為程序猿了,至於以後做不做GIS是一回事,反正不會失業。
3、少玩點遊戲,多泡妞,多去圖書館借書看,或者和同學搞個項目,找有經驗的學長指導等
4、本科,你不自己研究,GIS學不到精髓,我也沒學到,快丟完了,尷尬!!!。---------以下是答疑+個人觀點-----發現做webgis都是用前端語言js,難道JS才是webgis的主要技能?
webgis中`web`意思就是網頁端了,網頁自然就離不開腳本了,JavaScript目前是瀏覽器上運行最牛逼的腳本語言,JavaScript也是目前前端最流行的編程語言,所以webgis大都用他是必然的。
webgis 組成可以簡單分為三塊,地圖服務、後端、前端;地圖服務就不說了,gis出身不懂自己去找資料,後端也不說了;前端的話,可能是選擇了一些地圖js庫,就像 ArcGIS API for JavaScript 、 OpenLayers、Mapbox、leaflet這些。都是js封裝的地圖api庫。也有其他編程語言的,比如arcgis有for Flex,python的。但是JavaScript近年來是最火的。我也嘗試了下利用arcgis for js api demo去弄了下地圖的一些基礎功能,倖幸苦苦調了兩個禮拜吧,功能才做了幾個
這說明題主編程語言不過關,參考我上邊的建議,JavaScript學好了,看 arcgis for js api 就像看手冊一樣,開發幾個功能你可能就是一天兩天的事情了
老師最近也開始講webgis的課,老師讓我們利用 ArcGIS的網站在線製作webgis,分分鐘不用編程就能弄好一個gis系統。所以我學的東西怎麼才能用上呢?
為什麼程序猿寫代碼,就是為了生產出提升工作效率的工具,改善生活、或者是娛樂的東西。老師分分鐘搭建出來一個gis系統,這個平台也是程序猿苦逼實現的。你學好了就可以做類似的東西,現在不是搞什麼GIS智慧城市嗎,GIS大數據可視化什麼的,你也可以搞啊,看自己選擇咯。
最後的最後
1、gis開發到底要學什麼?語言主要學什麼?
2、有沒有一些好的webgis案例?
3、工作中webgis開發到底是前端工作還是後台工作?
1、看↓3
2、自己網上找,把平時找片下片的努力用出來就OK了。3、webgis需要前端後端兼顧,如果你是web開發工程師,那就是熟悉前端,掌握後端;Java後端工程師,就是熟悉後端Java,了解掌握前端。但在GIS行業,webgis這個職位一般叫 GIS開發工程師,要求都是Java、JavaScript、Ajax、jquery什麼的,反正和互聯網要求比起來低很多了。這職位要求掌握什麼技能,招聘信息上也有羅列。所以自己編程語言不知道學哪些,就找自己要應聘的職位,多找幾家公司放出來的招聘,看都大概要求什麼技能,就按要求學唄。如果選擇了開發方向,那將會表示未來你會花很多時間在不停地學習;如果你不小心和我一樣選擇了前端開發方向,還是互聯網前端開發,那就呵呵呵~~~~變化的太快。。。看個人興趣吧祝好運。純粹個人觀點,僅參考。曾經分享過一些關於webgis的東西↓可視化編程:https://zhuanlan.zhihu.com/viseye
不要糾結於語言,但是要熟練掌握一門面向對象編程的語言和基礎演算法。你總不能寫棵二叉樹都寫不出來,實現個類不會,以及演算法大概的時間複雜度都估算不出來,檢索到底什麼意義不懂。熟練掌握一門語言以後再學別的語言就簡單了,邊做項目變上手語言都行。我本科喜歡用C#,那時候做桌面程序,碩士就自學Python,博士自學的HTML5,JS。過程就是花了兩天看了遍語法熟悉了幾個特定的數據結構,然後就開始編碼了。語法可以一邊做一邊查來鞏固。基礎語法本來就沒大差別,就是控制語句,循環,變數聲明,作用範圍這些。GIS現在成熟度很高,上手過的應用項目都是把各種模塊湊起來完成一個定製化系統,演算法這塊都是在自己需要開發新演算法時候才用得上。
個人認為WebGIS你要充分掌握原理最好用開源系統把全棧實現一遍,怎麼把web伺服器,地圖伺服器,資料庫和前端鏈接起來。這樣搭一遍對系統的理解肯定超過ArcGIS online。那東西太傻瓜式了,你搭完一個都不一定懂原理是什麼。而且未來的小型應用不一定付得起ArcGIS那費用。個人觀點:既然決定做開發,那就以計算機專業的要求來要求自己,前兩年的基礎課都學習一下,不求全會,至少都有個了解。把自己當成計算機專業出身,然後又有豐富的GIS知識。困惑太多是因為知識太少。
謝邀這世上的路有很多條,GIS本身也是包羅萬象,你只提了webgis,未免有些局限。即便只是webgis,往深了鑽研也還有很多學問。js也好,java也好,都只是工具,工具當然要學好,但只是學好工具肯定不夠,還要去理解服務背後的演算法,性能等等。拿現成的arcgis api開發一些新功能好像幾行代碼就搞定了,但是僅僅滿足於此是不行的,你要知道你幾行代碼調用的函數背後有多少演算法,它們才是gis的精髓。
作為一名webgis開發者,我談談自己的感想:1.對於GIS行業來說,webgis確實比較火,webgis開發的方向挺多的,而且webgis確實是偏向前端的技術,展示都是在前端結合地圖的,為啥說用js的多呢?由於html5的出現以及流行,之前webgis開發的插件式的silverlight以及flex都被淘汰了,js技術最近幾年大火起來。2.webgis開發方向挺多的,不同的gis平台有不同的選擇,商業版本的:比如arcgis api for js,superMap、百度地圖api、天地圖api等等;開源webgis的:openlayer、leaflet等等,都是不錯的選擇。3.個人建議:不管選擇哪個webgis方向也好,先以一個為突破點,作為學生的話,推薦學習arcgis api for js,在看懂html+css+js前提下,熟悉arcgis api以及在線例子,兩者結合起來,可以嘗試針對的開發一個小系統,比如:校園webgis平台,我讀書時代,就是一邊看官網,一邊自學,開發一個webgis校園平台的。
--------------------------------------------------------------------------------------------------------------------------------------------
最後,想要了解webgis相關知識的giser,可以關注一下我的GIS之家專欄:知乎專欄--------------------------------------------------------------------------------------------------------------------------------------------webgis開發過程中,遇到不懂的或者諮詢的可以在GIS之家團隊論壇,只要我會的,都會回答的:GIS之家論壇首先當然需要GIS基礎知識,例如地圖學、測繪、空間分析等等;還有計算機知識,除了編程語言,還有資料庫、軟體工程之類的。GIS開發包括桌面端和Web端的,即Desktop GIS和WebGIS。桌面GIS功能強大,一般以地圖製圖、空間數據可視化、空間分析為主要功能。裡面又可以分為如ArcGIS、SuperMap這類基礎GIS軟體和基於ARCEngine、ArcObjects等二次開發的軟體。基礎GIS軟體通常使用C++開發,因為效率要求高,而且一些基本的類庫,如GDAL就是C++寫的。二次開發的一般以VB、C#為主。桌面GIS開發一般難度較大,二次開發稍微不那麼難。WebGIS發展的如火如荼。但WebGIS可不僅僅是Javascript和HTML。作為腳本語言,Javascript的功能還是有限的。Javascript主要用來做WebGIS的客戶端,也就是面向實際用戶,與用戶交互的那一塊內容。包括地圖展示、地圖瀏覽、標註、查詢等等。一般簡單的WebGIS使用廠家提供的API(如百度地圖API)就可以,你WebGIS的後台功能,例如路徑分析、空間查詢、熱點分析、數據存取等等,廠家寫的服務端給你做了。但是複雜一些的、廠家沒有提供相應功能的,如展示一個DEM、遙感影像之類的,就需要自己寫服務端的功能或藉助基礎GIS平台進行二次開發了。服務端的GIS開發可以基於ArcGIS Server等商業軟體,或者基於GeoServer、MapServer等開源實現來發布服務,具體的分析功能、演算法則可以使用C++或java、C#、Python等來寫。本人雖然是GIS科班出身,也寫代碼,但GIS開發卻做得少,主要去寫Spring-Spring MVC -MyBatis這些了。So,只能講這麼些淺顯的東西,希望有幫助。可以看看開源地理空間基金會 OSGeo的一些項目介紹,或Awesome GIS之類的了解GIS開發(不僅是WebGIS),如知乎專欄
作為一名GIS程序員,這也是我想問的,本人只能算半個gis專業出身,從事gis開發一年半多以上,主要是webgis開發,arcgis,supermap全套gis軟體,玩得66的,arcgis/supermap for js算是很熟悉了,此外,android, 3d也都在都有許多接觸,唯一的遺憾是沒接觸過大型項目的gis應用開發。雖然對自己各方面的技術都有些信心,java,資料庫,html各種前後台技術都有一些深深淺淺的接觸,但是對gis的應用和學習都很迷茫,也沒信心調到一些更好的gis公司錘鍊自己的技術。另外本人目標是系統架構師,gis方向希望成為專家,目前只希望自己能勇敢邁出這個環境,去接受外面的世界。
推薦閱讀:
※詳細的介紹如何用arcgis計算全局自相關係數?最好有截圖
※ArcGIS 1.1
※我想用arcgis做一張土地現狀圖,有數據和cad,可是不知道導入cad後具體的操作步驟,誰能幫幫我?
※北京54坐標系統的X值和Y值一般是幾位數?
※在當今GIS中,esri公司是否能代表前沿GIS技術的發展?
TAG:GIS地理信息系統 | WebGIS | ArcGIS | 地圖學與地理信息系統 |