測繪工程專業大地測量方向,想轉gis開發,從哪裡開始學習呢?求指導。?


既然是大地測量碩士,說明還有一定的動手能力吧,建議入門簡單,不一定要做二次開發,做底層開發也不錯,推薦是Python入門,然後學C# 最後學C/C++,如果做web 那就學java吧


Step One: Python 懂了Arcpy和pyQGIS,就懂得ArcGIS和QGIS(即Desktop GIS)

Arcpy 參考ArcPy and ArcGIS (豆瓣), pyQGIS 參考PyQGIS Developer Cookbook

Step Two: Database 包括spatialite 和 postgrelSQL

參考The Gaia-SINS federated project home-page 和PostgreSQL: The worlds most advanced open source database

Step Three: Javascript 最好玩的都在JS上,leaflet和openlayer。

參考 Leaflet - a JavaScript library for interactive maps 和 OpenLayers 3

可以參考我的博客。Awesome GIS - 簡書

Awesome GIS(GIS Tech Stack技術棧)

Geomatics專欄點此:Geomatics(GIS,GPS,RS,Surveying)

語言

  • Python 最好的快速開發語言,是一門API藝術

    • awesome-python
    • 1簡單的入門
    • 2總結入門坑及基礎資源
    • 3Geopython GIS相關庫
    • 4Python的常用庫入門
    • 5Flask框架
    • 6入門爬蟲坑--網頁數據壓縮(python deflate gzip)
    • 7Requests爬蟲技巧
  • Node.js 最炙手可熱的網路技術源泉,可用於WebGIS

    • awesome-javascript
    • 1常用Global庫
    • 2入門及GeoNode.js GIS相關庫

前段

  • Leaflet 兼容移動端,和現代的一些框架一樣優先考慮移動端
    • 1leaflet入門
    • 2簡單插件編寫leaflet-pip-v2
    • 3進階插件編寫geojsonFilter
  • Mapbox總有人討論「Mapbox VS Leaflet?」這是個爛問題,Mapbox是Leaflet的超集,就像Typescript和Javascript之間的關係一樣
  • Openlayer3扯淡大叔教程
  • Turf js層面做出簡單的空間分析

後端

  • Geoserver 基於Java的地理信息服務的發布,使用簡單
  • Mapserver 基於C語言的地理信息服務的發布,內存佔用小
  • GDAL 數據格式轉換
    • 1GDAL命令行入門
    • 2python for GDAL
    • 3gdal CLI Cheat Sheet

數據格式

  • GeoJSON 開源地理信息JSON格式
    • awesome-geojson
    • geojson-js-utils 空間數據簡單處理js實現
    • geojson-python-utils空間數據簡單處理python實現
  • TopoJSON 開源地理信息JSON格式,大小要比GeoJSON小40%
  • TileJSON 瓦片數據包裝的JSON格式,用的不多
  • WKTWKB 文本標記語言表示矢量數據
    • WKTWKB 筆記一:格式介紹

資料庫

  • Spatialite 空間數據的查詢等處理,小項目足矣
    • 1簡單的入門
    • 2CLI Cheat Sheet
    • 3python for Spatialite
    • 4NET平台使用spatilite擴展
    • 5Spatiliate2GeoJson數據的轉換
  • Postgresql 大型空間數據項目
  • MBTILES 承載瓦片的數據,快速索引
    • 1入門與簡單應用

瓦片渲染

  • Global Mapper 專門用作已有柵格圖像切片
  • Mapnik 專門用於矢量數據的切片
  • TileMill 在矢量數據渲染時,運用CartoCSS對矢量數據賦予樣式

數據處理

  • QGIS 開源GIS數據處理桌面軟體,其中包含Grass,SAGA兩個學術界開源GIS平台
    • 1簡單的介紹
    • 2地圖綜合
  • Mapsharper 數據綜合神器
    • 1地圖綜合神器

數據資料

  • 地理空間數據云 沒想到數據來的這麼快

填坑

  • 1網頁端JS的緩存問題
  • 2Angular遇到的一些坑
  • 3SpatialiteSharp的使用坑

整個技術棧主要針對的是輕量或者小項目去考慮,運用一些流行的儘可能開源的工具去做,這是我的一些想法和筆記,詳情參考從mapbox的開源工具看Web GIS的發展,希望能給您一點點幫助。PS:我在github上看到一個awesome gis,並非我主導的,希望各位GISer可以一起參與修改。

轉載,請表明出處。總目錄Awesome GIS


謝邀,僅限一家之言。不知道題主你對GIS原理是否一定的深入了解,如果沒有的話建議你補一下這方面的知識,同時對任意一款GIS平台軟體的繪圖有適當的了解,一般都以ArcGIS為主。主要結合GIS原理學習ArcMap的操作,理論與實踐相結合。推薦下面這三本書:

我對一次開發不了解,僅說明二次開發。選擇C#或Java作為你的二次開發語言,由於C#與Java在語言特性上有很多相似之處,所以我其實更推薦學習C#,因為ArcGIS的二次開發組件跟.NET的融合非常好,非常易學。學了後即使以後去做Java開發,也會容易得多。初學Java用Java開發,學習資料不是那麼好找。C#或Java語言書籍,我就不推薦了,知乎上有非常多的答案,題主找一本適合自己的學就行了。在掌握了主要語法後就可以開始學習二次開發。初學二次開發推薦下面這兩本,任選一本即可:

此外,在學習二次開發的過程中,推薦這兩個網站:

API Reference Overview

ArcObjects Help for .NET developers

Microsoft API and Reference Catalog

編程得多動手實踐,熟悉常用介面、類、屬性等用法,同時要多總結一些常用功能的示例代碼,自己對其進行封裝,這樣後面做更多的二次開發時會容易得多,不用再重新編寫代碼。如果能夠照上面這麼認真學下來的話,最後要做的就是選擇一個你需要的方向,是走desktop,還是web還是mobile,這個由題主你自己來決定了。加油!


我也是從測繪轉的GIS,有些感觸。

個人認為學習的過程如下:

1.先熟悉一下最基本的GIS知識,相信你在學校已經上過專業課了。

2.建議以ArcGIS體系為框架進行學習,網上有D版,方便上手。建議採用ArcGIS 10.1以後的版本

(1)ArcGIS Desktop進行基本操作。

(2)ArcGIS Server進行數據發布。

(3)ArcGIS JavaScript 做前端二次開發。

(4)伺服器端進行開發的話,我建議你學習c# +http://asp.net mvc,主要是visual studio 2013/2015很好用;當然,你也可以選擇Java體系,我不太懂Java不做評論。

(5)學習一下空間資料庫操作,SqlServer2008R2以後的版本都支持。

當上面的都會了,那麼你肯定對GIS的框架有了不錯的了解,那麼

3.我覺得你可以常識一下開源的框架,因為很多小的項目,買不起ArcGIS或者超圖軟體。之所以放在這裡學習,是因為開源框架的學習需要一定的代碼基礎和認識基礎。開源框架 前端可以選擇OpenLayer或者Leaflet,服務端隨意,資料庫可選擇postgresql。

4.與上面的體系平行的,就是百度地圖和騰訊地圖的SDK,建議對JavaScript有一定了解以後,可以寫點程序熟悉一下,這些不難,主要是側重是應用。

5.後面的話,根據個人的發展再選擇側重把...

:)祝好運


根據現在的行業情況來看,從c#看起比較好,如果你想做底層開發就從c++開始看吧,後面你應該會慢慢接觸到其他的


推薦閱讀:

有了Google Maps API,還需要去購買一些昂貴的GIS系統嗎?2者相比各有什麼優缺點或者說各自適合哪些應用場景呢?
十進位經緯度坐標小數點後幾位能精確到米?
現在常用的地圖標記避讓演算法有哪些啊?

TAG:軟體開發 | GIS地理信息系統 | 軟體開發入門 | GIS軟體工程師 | 測繪工程 |