GIS开发工程师工作内容
GIS开发工程师利用地理信息技术和相关的编程技术分析和处理地理空间数据、开发地理信息系统应用程序,并解决各种与地理位置相关的问题。GIS开发工程师的主要工作内容包括以下几点:
地理数据管理:GIS开发工程师负责管理地理数据,包括收集、整理、存储和更新地理数据集。他们使用数据库管理系统来存储和组织数据,确保数据的一致性和完整性。
地图应用程序开发:GIS开发工程师设计、开发和维护地图应用程序,以满足用户的需求。他们使用各种编程语言和GIS开发工具,构建用户友好的界面,实现地图浏览、查询、标注、路径规划等功能。
空间数据分析:GIS开发工程师利用空间分析技术对地理数据进行分析和处理。他们可能使用的技术包括缓冲区分析、叠加分析、网络分析等,以从地理数据中提取有用的信息和见解。
数据可视化:GIS开发工程师使用数据可视化技术将地理数据以图表、图形、热力图等形式展示出来,使数据更加直观和易于理解。他们可以使用各种可视化工具和库来创建交互式地图和图表。
地理数据库管理:GIS开发工程师设计和管理地理数据库,确保数据的安全性和高效性。他们创建数据模型、定义数据表结构,并执行数据库操作,如查询、更新和优化。
技术解决方案提供:GIS开发工程师与用户、项目团队和其他利益相关者合作,了解需求并提供技术解决方案。他们评估可行性、设计系统架构,并制定实施计划,确保项目的顺利进行和交付。
故障排除和维护:GIS开发工程师负责故障排除和系统维护工作。他们监控系统性能,解决技术问题,并进行系统更新和优化,以确保地理信息系统的稳定运行。
GIS开发工程师必备技能
地理信息系统(GIS)知识:
具备深入的地理信息系统知识是GIS开发工程师的基础。他们需要了解地理数据模型、地理坐标系统、地图投影、空间分析技术等GIS核心概念和原理。
编程技能:GIS开发工程师需要具备编程技能,以实现地理数据的处理、地图应用程序的开发和系统集成等任务。常见的编程语言包括Python、JavaScript、C#等,熟悉相关的GIS开发工具和库也非常重要,如ArcGIS API、Leaflet、Mapbox等。
数据库管理:熟练掌握数据库管理系统(如MySQL、PostgreSQL、Oracle)以及相关的SQL查询语言是必要的。GIS开发工程师需要能够设计和管理地理数据库,执行空间查询和分析,并保证数据的一致性和完整性。
空间数据分析:掌握空间数据分析技术是GIS开发工程师的关键能力之一。了解缓冲区分析、叠加分析、网络分析、地理统计等常用的空间分析方法,并能够使用相关的GIS软件或库进行实际分析操作。
Web开发:对于开发Web地图应用程序,GIS开发工程师需要熟悉前端技术,如HTML、CSS和JavaScript,并了解常用的Web地图API(如Google Maps API、Leaflet、Mapbox API)以及相关的前端框架和工具。
数据可视化:掌握数据可视化技术是GIS开发工程师的重要能力之一。他们需要了解各种数据可视化工具和库,如D3.js、Tableau等,以将地理数据以图表、图形、热力图等形式进行可视化展示。

新中地学员大屏可视化作业
GIS开发岗位工作流程
确定需求,确定硬件环境
首选确定业务功能需求,只有需求确定下来了,才能确定使用什么技术路线。是BS构架还是CS构架,需要的开发工具等。一般BS系统偏向内容展示,CC系统偏向内容编辑。硬件环境主要为网络环境,因为网络环境牵涉到地图底图的来源,如果不能访问外网,还需要考虑采用离线底图。
确定开发技术
地图引擎地图引擎,说明白点就是SDK或者JS库,可以提供将地图数据转化为地图位置的功能,并且可以提供加载底图的功能。总的来说,它提供了地图显示的所有接口。
底图
除了上面提到的网络环境影响底图的选择,还要根据客户需求以及开发技术来确定底图图源的情况。
一般的底图除了常见的类似百度地图服务器提供的图片格式底图,还包括.shp ,.tab, geojson文件格式。通过不同的地图引擎库加载不同的文件,最终实现在地图上显示点线面的效果。
国内在线底图图源: 百度地图、高德、天地图、腾讯。
国外在线底图图源: 谷歌地图、OpenStreet、ArcGIS、Bing。

开源开发:
Openlayers 和 Leaflet
开源的二维地图JS开发库,其源码在GitHub开源,团队型开发,由很多地图基础功能,很多人会以此为基础写很多plugin。包括国内地图访问,地图工具,地图分析等。
可选技术: Openlayers/LeafletJS + GeoServer/PostGIS/天地图/OSM ,其中GeoServer和PostGIS为地图服务引擎,可以通过这两个服务发布地图服务,用来作为底图。免费,支持离线。
Cesium 和 mapboxs
开源的三维地图JS开发库。其源码在GitHub开发,公司型开发,如果只使用其他JS库,不使用其服务资源不收费。
可选技术:CesiumJS/mapboxs + CesiumMap/OSM/天地图
可通过加载三维模型以及使用WebGL技术对地图内容进行操作和效果展示。 目前不确认是否支持离线。
API开发:
GoogleMap :
其地图API在国内已无法访问。
BaiduMap:
百度公司提供的地图API,可在线访问百度地图的底图资源包括三维建筑等信息,并根据接口进行相关功能开发。
根据国测局要求,其底图进行了加密,必须使用其API加载数据才能显示正常位置。
可选技术:JavaScript + BaiduMap API , 不支持离线。非开源软件,接口固定,无法进行修改,底图不收费,其他服务类接口超过访问次数后收费。
AMap:
高德公司提供的地图API,可在线访问高德地图的底图资源包括三维建筑等信息,并根据接口进行相关功能开发。
根据国测局要求,其底图进行了加密,必须使用其API加载数据才能显示正常位置。
可选技术:JavaScript + AMap API , 不支持离线。非开源软件,接口固定,无法进行修改,底图不收费,其他服务类接口超过访问次数后收费。
天地图:
天地图以提供底图资源为主,在实际开发过程中,很少直接使用天地图的API进行项目开发。
可选技术:JavaScript + TMap API , 不支持离线。
业务数据
业务数据必须包含地理位置信息,也就是常说的经纬度信息,只有有了经纬度信息,才能知道在地图上将对象放在哪里,否则无法确定位置。也就是失去了GIS系统的优势和意义。需要对相应的数据进行地图入库,如ArcGIS Server、GeoServer等。
业务逻辑
根据功能需求,设计交互操作以及信息展示。各个行业的需求模式不同,其交互逻辑也不相同。
开发
根据业务逻辑,使用对应的技术,开发出对应的功能。
部署
部署的时候,除了考虑项目文件的部署,还要考虑底图的部署,离线地图要放在对应的文件夹,如果是ArcGIS Server、GeoServer、PostGIS这样的地图服务软件,要单独进行安装,并将地图源文件导入发布。
说明:离线底图除了 ArcGIS/GeoServer/PostGIS 这样的发布局域网服务的地图服务外,可以使用下载软件将在线底图下载到本地加载,也称之为离线底图。

大家可以+下方小助手↓备注【webgis学习资料】免费获取
2万+

被折叠的 条评论
为什么被折叠?



