⑴ 简单的webgis选择哪个开源gis
postgis数据库+Openlayer客户端展示+java后端处理+GeoServer-GIS服务器+tomact-web服务器+uDig地图处理
⑵ 怎么学好webgis开发
看到这个问题的前两天,我正好看到一个大牛(GIS520社区站长)写的经验介绍。
贴下原文:
本文主要介绍小白如何成为初级WebGIS开发工程师,只适合对应人员参考(WebGIS前端的技能要求和互联网前端要求有些差距的)。后续会有中、高级WebGIS开发工程师相关文章。
程序员的职业岗位,一般的公司会根据技术能力情况区分等级。每个等级有对应的薪资范围。
如果不区分级别的,可能这个公司就不是以技术驱动的公司,研发团队管理也不够专业。一些大公司可能会像阿里那种级别划分,p1~p10,腾讯网络也类似。小公司可能就简单的划分为初级开发工程师、中级开发工程师、高级开发工程师、技术经理、专家/技术总监。
小白一开始的目标就应该定位为初级开发工程师,然后通过努力,成长为中级到高级。那么下面我介绍一下需要具备什么样的技能才能成为一名合格的WebGIS开发工程师。
技术基本要求
1. JavaScript、CSS/HTML掌握;
2. 至少掌握ArcGIS API for javascript 或者 openlayers一种;
3. 懂mysql或oracle或postgresql一种;
4. 掌握Arcgis server或者geoserver发布地图服务并展示;
5. 懂得Java后端语言加分(不强制)。
以上要求,是基于我个人经验以及对一些GIS公司工作的理解。如果你都能满足,可以随意找webgis的开发岗位了。具体什么薪资,每个公司会有点区别,并且要看个人技术的总体情况。
注意我对技术的描述关键词都是“掌握”,并没有说是“熟练”,如果是熟练的话,那应该至少是中级开发工程师了。下面我在仔细的说明这些技能如何学习和对应初级WebGIS开发工程师的掌握程度。
1. JavaScript、CSS/HTML掌握
这里边最重要的是html和JavaScript两个,其次是css。对webgis公司来说,系统页面和美观效果和互联网的网站相比,有些差距,所以css这边要求不高;解释一下js为什么是最重要的,因为js是用的最多的,所有的web页面逻辑都是用js来实现,一般你的js能力的大小可能决定你工作的效率和所能承担的任务难度大小。
js、css、html三者综合起来占WebGIS岗位技术比为70%(就是满分100分,这里占了70分,看你能拿多少了)。
对于小白,我建议就是先学习html,然后了解一下css,最后好好学习js。学习难度上,html最好学,其次到js入门容易,最后到css,css入门和学好都比较花时间的,需要慢慢来,多练习。而js入门没啥难度,但是学好,熟练,精通就难了。
这里推荐三本书:
《JavaScript权威指南》第六版
《JavaScript高级程序设计》第三版
《CSS权威指南》第三版
初学者不宜看过多类似的书,只需要一种读好,读懂一本就够了,推荐的都是最好的之一。如果在一开始看不到,可以借助一些网站,比如问w3cschool网站手册,或者慕课网的一些视频教程。循序渐进,基础语法掌握后,尝试多做练习。如果不知道做什么,我帮你出题。
2. 至少掌握ArcGIS API for javascript 或者 openlayers一种
作为一名合格的WebGIS开发工程师,这个技能是不可少的。但是不管是arcgis还是openlayers地图框架,都是一个api 库。
这里解释一下什么是API,因为完全小白的人可能不了解。API 可以简单的理解为一个工具箱,里边有锤子、钉子、螺钉、螺母等工具或零件,你做一样东西或者修一样东西需要什么工具,就找到这个工具箱,然后要用锤子就找到锤子使用就行了。这个是最简单的比喻,实际上是有点区别,如果不懂得话,暂且可以这么理解。
要掌握ArcGIS API for javascript 或者 openlayers一种的前提是编程语言JavaScript过关。越熟悉越好。如果你熟悉使用JavaScript,对于ArcGIS API for javascript 或者 openlayers一种就可以做到,边看文档边操作一样的效果了。学习的话就到对应的官网看文档就够了,官方demo也比较详细,没有哪本书做得比官方文档好。这里不推荐书籍。
3. 懂mysql或oracle或postgresql一种
工作上,我们可能会经常做一些业务功能,业务简单的可以理解为增删改查,而这些数据的操作都是基于数据库的。数据库,程序员是必须要掌握熟悉的技能,基本的sql要会写。不管什么数据库,sql语言都很相似,一开始只需要选择一种去学习就够了。首选mysql或oracle。
4. 掌握Arcgis server或者geoserver 发布地图服务并展示
这个是软件层面的使用,真正工作上,可能发布地图服务的工作是技术支持人员操作的,但是,说道学习上,开发人员也是必须要掌握的。
一方面,自己可以安装软件,然后通过学习发布地图服务,有了地图服务,自己可以在程序中调用地图服务,可以做自己的webgis系统,编程练习等;
另一方面,只有了解了地图服务这一层面的知识原理,你才能更好的理解到WebGIS是什么,WebGIS地图是如何展示和工作的。
5. 懂得Java后端语言加分(不强制)
一些小公司可能会把WebGIS开发工程师叫做GIS开发工程师,如果你懂得Java,可能会接触到一些后端开发的工作,接口的书写等。
懂得一门后端编程语言,我个人觉得是比较重要的,对日后学习的理解,前后端工作流程的理解都相当的重要。而且,你可以自己搭后端,自己写前端页面,这样就可以独自一人完成一个网站。
当你有能力一个人完成一个网站的时候,从数据库表结构设计、后端框架搭建、接口设计编码实现,到前端框架搭建、前端编码页面实现,整个过程你会学到很多东西。如果你懂后端了,不知道怎么开发网站,你可以来找我,我指导你去设计,去实现。
当然,小白建议忽略这个技能要求,因为学习前面的技能要花费很多时间,日后你往更深的技术层次追求时,再考虑进去。
写在最后
上边的技能要求,针对的是小白或入门级的,如果你不是这个群体,可以忽略;如果你已经是初级或者中级开发工程师了,但是发现自己有些不足,那你就好好对自己的技术成长路线规划一下。对于未知的技术学习建议:
1. 首先,掌握熟悉你所在公司所使用和涉及的技能
好处:帮助自己更好更快完成工作任务,这样可以减少加班;领导发现你能力不错,对自己也有好处。当然,如果你觉得公司使用的技术比较low,你在混,那建议你尽快离职,不要浪费自己的时间;如果你到哪都是混,那建议你还是转行算了。
2. 不要满足于现状,不管是技术上,还是其他
技术无止境,一个公司的技术栈在长时间内不会变化的,这个时间可能是3年、5年或者10年。
当然,不变化的可能是传统软件公司,或者是小公司。不要觉得你工作几年出去有经验就吃得香了。要有危机感,跟进最新技术发展情况,观察大公司流行使用什么框架技术,自己尝试去学习了解。
也不要找借口说没时间学习,如果把自己玩游戏或看电视剧的时间用在学习上,会是什么样子呢?
⑶ 有哪些 GIS+python 的开发经验值得分享
python之于GIS与python之于IT类似
GISer采用python的原因也在于“人生苦短,我用python”
python在gis中的应用非常之广
1. desktop GIS:
ArcGIS从版本10开始不再支持原来的VBA,而改用python
QGIS本身大部分的代码特别是插件部分可以采用python进行开发
2. 地图引擎
mapnik—基于C++引擎的顶级地图引擎库,和python结合比较紧密
mapfish—支持部分专题地图在线制作
3. webgis
python+geodjango 是最常用也最庞大的后台框架
GISer使用python一定要充分发挥python语言的特性
如ArcGIS集成phthon是利用了python的脚本语言特性
后台webgis等服务,可以发挥python作为语言黏合剂的特性,充分利用已有的GIS算法库
⑷ WEBGIS系统开发常用的技术框架有哪些,从前端到
前端:
1、老一代两大富应用(RIA)框架(目前已经停止更新):flex、silverlight
2、其他开源(早期项目较多):openlayer2、amap、bmap、ArcgisAPI4JS(3系列版本)
3、较新框架:openlayer3、cesiums、ArcgisAPI4JS(4.0之后版本)、
4、轻型框架(需要二次封装):WebGL(例如d3.js、three.js)
后端:arcgisServer、geoserver、mapserver
部分效果如下
flex:
<img src="https://pic3.mg.com/50/v2-_hd.jpg" class="content_image">
openlayers:
<img src="https://pic2.mg.com/50/v2-_hd.jpg" class="content_image">
cesiums:
⑸ 学习网络GIS的开发都需要学习哪些基本的东西
GISer入门指南电子书第一季分享版.pptx免费下载
链接:https://pan..com/s/1aq2HNC5YgVGHuc8rNoVUTw
ArcGIS入门级教程,详细介绍了ArcGIS产品族及成员产品 1、GIS 的概念和需求 2、什么是ArcGIS 3、Geodatabase中的GIS数据概念 4、桌面GIS产品:ArcView, ArcEditor和ArcInfo等
⑹ 有哪些 GIS+Python 的开发经验值得分享
python之于GIS与python之于IT类似
GISer采用python的原因也在于“人生苦短,我用python”
python在gis中的应用非常之广
1. desktop GIS:
ArcGIS从版本10开始不再支持原来的VBA,而改用python
QGIS本身大部分的代码特别是插件部分可以采用python进行开发
2. 地图引擎
mapnik—基于C++引擎的顶级地图引擎库,和python结合比较紧密
mapfish—支持部分专题地图在线制作
3. webgis
python+geodjango 是最常用也最庞大的后台框架
GISer使用python一定要充分发挥python语言的特性
如ArcGIS集成phthon是利用了python的脚本语言特性
后台webgis等服务,可以发挥python作为语言黏合剂的特性,充分利用已有的GIS算法库
⑺ 有哪些 GIS+Python 的开发经验值得分享
GIS 和 python 的结合有很多种可能性
Arcpy 参考ArcPy and ArcGIS (豆瓣), pyQGIS 参考PyQGIS Developer Cookbook
Geopython GIS相关库
GDAL 参考 Welcome to the Python GDAL/OGR Cookbook!
各种空间数据库,如 spatialite 参考 SpatiaLite Cookbook
基础库(抽象库)
GDAL 不多说,GIS万物本源
Proj.4 制图学投影转换库
geojson geojson数据处理,点线面
高级库
Shapley GIS的图像处理
Fiona GIS数据读入写出
Rtree Rtree空间索引
pyproj Proj.4的接口扩展
OWSLib WMS地图服务发放
basemap 画地图
超高级库
geopandas 整合了pandas,shapely,fiona,descartes,pyproj和rtrees可以直接用于数据处理
geodjango django出品,保护GDAL,GEOS等可以发送地图服务
参考 Python 笔记三:Geopython GIS相关库
而如今,javascript在互联网的地位也变得越来越重要,GIS+JS的项目也氤氲而生,所以问题来了。参考:有哪些GIS+JavaScript(node.js)的开发经验值得分享? - Node.js
或者关注我的博客,写得不是很好,希望各路大神多多留言指导。
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格式,用的不多
WKT&WKB 文本标记语言表示矢量数据
WKT&WKB 笔记一:格式介绍
数据库
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
⑻ 想走开发方向,想学webgis,请问该学什么知识
先说一个什么是webgis WEBGIS:通过互联网对地理空间数据进行发布和应用,以实现空间数据的共享和互操作,如GIS信息的在线查询和业务处理等。WebGIS客户端采用Web浏览器,如IE,FireFox。WebGIS是利用Internet技术来扩展和完善GIS的一项新技术,其核心是在GIS中嵌入HTTP标准的应用体系,实现Internet环境下的空间信息管理和发布。WEBGIS可采用多主机、多数据库进行分布式部署,通过Internet/Intranet实现互联,是一种浏览器/服务器(B/S)结构,服务器端向客户端提供信息和服务,浏览器(客户端)具有获得各种空间信息和应用的功能(转自网络)其实webgis已经包括了前端,后端,数据库,再加一些gis基础的东西,如果说整个webgis的环节,你应该已经是一个全栈工程师了。现在webgis很大一部分是对空间数据和空间数据分析结果的展示,后端很多功能基本是用很成熟的技术调用接口来完成的。很大一部分工作是在web前端这块。那就说你要学的东西吧,假设你已经具有了,gis相关基础。webgis地图基本原理看一下你http://www.thinkgis.cn/topic/541ac2e15eb69f9abd038dfc现在的主要任务就是去学习前端知识。HTML,JavaScript,css,这三样必须要熟悉,接着后面你可以使用一些地图开源库调用地图的服务和相关接口地图展示相关数据了。如果你想展示的效果足够炫,你就需要研究一些绘图技术了,svg,canvas,如果你想做三维就要上webgl了。题主想学习的话,还是做一些东西,边学变练手,慢慢就上路子了,学习webgis不在于用什么API,什么库,基础打好,一切api,库都是看文档。练手的话,题主可以搞些PM2.5数据,在地图上展示一下地图库可以选leaflet,openlayer,arcgis的也可以,做一些热力 tu如效果,时间变化效果,一些图表展示,在搞个后端存储一下数据,弄一下简单的服务端。做这样一个小例子下来你算是webgis入门了。
⑼ 走gis 的web路线用学 python吧
我来说说我的一点经验,对于gis来说,python可以用来写一些gis工具,这些工具一般都配合arcgis工具箱一起使用,单单针对gis来说,python的东西并不很多,但是和你学webgis还有三维是没什么必然关联的,所以如果是想多学东西,可以兼顾python,如果精力有限,不管也行,个人感觉哈。
⑽ WEBGIS系统开发常用的技术框架有哪些,从前端到后端,求推荐
前端:
1、老一代两大富应用(RIA)框架(目前已经停止更新):flex、silverlight
2、其他开源(早期项目较多):openlayer2、amap、bmap、ArcgisAPI4JS(3系列版本)
3、较新框架:openlayer3、cesiums、ArcgisAPI4JS(4.0之后版本)、
4、轻型框架(需要二次封装):WebGL(例如d3.js、three.js)
后端:arcgisServer、geoserver、mapserver
(作者:毛小亮)