查看原文
其他

GIS开发编程语言汇总及分类

慧天地 2022-12-21

点击上方“慧天地”关注我们

文章转载自微信公众号 新中地教育,版权归原作者及刊载媒体所有。

最近总有很多人关心GIS开发语言的问题,这个确实很重要,毕竟学习一门编程语言需要花费不少时间和精力,找不到合适GIS的编程语言意味着浪费时间。


之前的文章中简单介绍了常见的一些语言,这里再将这些内容做一个详细的对比,大家可以根据自己的需要进行参考。


编程语言的特征


了解编程语言的特征的一个重要方法是根据它们的不同的特点进行分类,比如静态和动态类型。


静态类型语言如C、C++、C#和Java在编译时评估类型信息,并且避免形成bug。它们的好处是许多错误可以在编译时捕获,并且可以在过程的早期捕获和修复bug;缺点是会让代码看起来很冗长,有时可能需要会花费大量时间去“让编译器满意”。


动态类型语言如Python、JavaScript、PHP和Ruby,会将检查延迟到运行的时候。动态类型的优点是易于编程;缺点是在运行程序之前,某些错误将一直存在,而这些错误可能很难在代码中确定下来。


GIS开发通用编程语言


现在有大量的编程语言在使用,实际上没有“最佳”选项;这里重点讨论与GIS系统最相关的问题。下表汇总了几种最新语言列表。


全世界最流行的GIS编程语言汇总:


可以看出,最流行的GIS编程语言是Python、Java和JavaScript,这几个在每个列表中都排在前5位;


C++和C#在6个列表中出现了5次,PHP出现4次;C,R,Ruby,Shell,SQL和TypeScript等都出现了2次。


下面,按照出现次数和排名,简要介绍几个列表中出现较多的编程语言以及GIS中应用较多的语言类型。


一级流行编程语言


Python

Python现在非常流行,是很多GIS软件,例如MapGIS、ArcGIS和QGIS中使用的主要脚本语言。Python是一种很好的“粘合”语言,使用方便,它有许多扩展。


JavaScript

目前web应用程序中用户界面的领导者。Google Maps大量使用JavaScript,很多GIS软件的GIS API for JavaScript支持web地图开发,领先的开源web地图客户端(OpenLayers、Mapbox GL JS)也基于JavaScript。

C#

C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的青睐。

C#常用于编写GIS软件的新附加组件。


C++

C++是一种通用程序设计语言(源自C),它具有程序和面向对象的特征,这在嵌入式系统中经常使用。自1985年开发以来,它的受欢迎程度从2004年开始普遍下降(可能是由于学习曲线陡峭和总体复杂),但它仍然占据了项目的很大份额。但你每天使用的许多软件应用程序都是用C++编写的,所以它不会很快消失。


Java

Java仍然是一个受欢迎的选择,尽管它的受欢迎程度逐年下降。例如,Java用于GeoServer和Java拓扑套件项目。


二级流行编程语言


C

如果你需要编写一个设备驱动程序,可以用C,但是如果你需要创建一个web应用程序,就不合适了。也有许多开源GIS项目都是以C为例。


PHP

PHP是创建交互式网站的最佳方式之一,因此,它非常流行。


R/S

R/S是一种脚本统计语言,包含许多非常复杂的空间统计信息,可以使用GIS软件的一些输出。R本身有许多空间扩展,支持广泛的地理空间功能(空间数据分析、空间数据科学与R和R-spatial)。


Ruby

Ruby是一种比较古老的语言,Ruby在国内GIS开发方面应用不多,但在国外的一些地理站点,如OpenStreetMap和WeoGeo,都使用Ruby。


Rust

Rust是由Mozilla基金会开发人员支持的开放源码语言。它在概念上与C++相关,但是设计成相对更安全。Rust“在游戏引擎、虚拟现实模拟引擎、虚拟现实控制器方面有着巨大的潜力”。随着更多基于GIS的虚拟现实的发展,Rust可能会在我们的社区中应用更广泛。


Shell

Shell是一种脚本语言,用于Unix(以及Linux和Mac OS)环境。它允许用户将Unix命令链接在一起,让系统将其作为事件执行。


SQL

SQL用作数据库访问和控制语言。SQL是许多GIS操作的核心,它是地理信息系统中使用广泛、历史悠久的语言之一,在很多GIS软件应用中都可以见到它。


TypeScript

TypeScript是一种面向对象的编程语言,是JavaScript的超集。与JavaScript一样,支持将TypeScript与ArcGIS for JavaScript API和和Google Maps JavaScript API一起使用。


哪些语言适合GIS开发?

GIS脚本和应用程序(Python、R)

数据处理、分析和建模(Python,R)

Web映射(JavaScript、Python)

地理空间数据库(SQL)

MapServers(Java、C#、.NET、C++)

GIS重量级开发(Java、C/C++、C#)

移动开发(Android、iOS、JavaScript)

地理空间库(JavaScript、Python、Java、R、C/C++)



荐读

陈军院士:实景三维中国的概念解析与信息模型构建

杜清运教授团队牵头成立“武汉大学-国汽智图高精地图研究中心”

打造一体化融合新模式 赋能经济社会高质量发展——国家新型基础测绘体系建设山东试点探索与实践成效

《慧天地》敬告

《慧天地》公众号聚焦国内外时空信息科技前沿、行业发展动态、跨界融合趋势,发现企业核心竞争力,传播测绘地理信息文化,为时空信息类相关专业学子提供日常学习、考研就业一站式服务,打造政产学研金服用精准对接的平台。

《慧天地》借鉴《读者》办刊理念,把时空信息领域的精华内容汇聚到平台上。我们高度重视版权,对于精选的每一篇推文,都会在文章开头显著注明出处,以表达对作者和推文引用平台版权的充分尊重和感谢;对于来源于网络作者不明的优质作品,转载时如出现侵权,请后台留言,我们会及时删除。感谢大家一直以来对《慧天地》的关注和支持!


——《慧天地》运营团队

投稿、转载、商务等合作请联系

微信号:huitiandi321

邮箱:geomaticshtd@163.com

编辑:赵洪扬  审核:王其轩指导:万剑华教授

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存