GIS 编程语言概述

GIS 编程语言概述


发布日期: 2023-06-14 更新日期: 2023-06-14 编辑:xuzhiping 浏览次数: 683

标签:

摘要: 设计许多地理空间系统的一个基本要素是选择要使用的编程语言(或多种语言)。我们可以设想大多数激动人心的项目都将至少涉及一些编程来定制现有工具或开发全新的工具。当今,对地理空间专业人士有用的编程语言种类繁多,维基百科就列出百余种语言。 表征编程语言 表征编程语言...

GIS 编程语言概述

设计许多地理空间系统的一个基本要素是选择要使用的编程语言(或多种语言)。我们可以设想大多数激动人心的项目都将至少涉及一些编程来定制现有工具或开发全新的工具。当今,对地理空间专业人士有用的编程语言种类繁多,维基百科就列出百余种语言。

表征编程语言

表征编程语言的一种重要方法是根据它们的类型系统,即可以为变量或对象赋予意义的规则。一个基本的区别是静态类型和动态类型之间的区别。C、C++、C# 和 Java 等静态类型语言在编译时评估类型信息,并拒绝格式不正确的代码。这样做的好处是可以在编译时而不是运行时捕获许多错误,并且可以在过程的早期捕获、修复错误。静态类型的缺点是它使代码更加冗长,有时可能会花很多时间“让编译器开心”。Python、JavaScript、PHP 和 Ruby 等动态类型语言将类型检查延迟到运行时。因此,经常不在使用变量之前不必指定变量的类型。动态类型的优点在于易于编程;缺点是有些错误会在运行程序之前漏掉,并且这些错误可能很难在代码中确定下来。

与 GIS 一起使用的通用编程语言

如今有大量的编程语言在使用,真的没有最佳的选择。我们在此重点关注与当代地理空间系统最相关的那些编程语言。

地理空间行业中的通用编程语言

地理空间行业中的通用编程语言

下面,我们简要描述出现在两个或多个列表中的编程语言。第一组(按字母顺序排列)是出现在 5 个或更多列表中的那些,因此通常在开发人员范围内最受欢迎,然后(也是按字母顺序)我们概述那些出现在较少(但至少 2 个)列表中的关键特征。这些描述之后是关于针对特定应用程序选择非常适合特定 GIS(和其他地理空间)开发任务的语言观点。

流行的编程语言

流行的编程语言

1.Python:Python 如今非常流行,并且是 ArcGIS 和 QGIS 中使用的主要脚本语言。Python 通常被认为是一种很好的“胶水”语言,并且通常很容易使用。它有很多扩展,例如 SciPython 和 Numerical Python。

2.JavaScript:JavaScript 是当前 Web 应用程序用户界面的领导者。Google Maps 是 JavaScript 的重度用户,Esri 的 ArcGIS API for JavaScript 支持网络地图开发,领先的开源网络地图客户端(OpenLayers、Mapbox GL JS)也是基于 JavaScript。D3 是一个非常流行的网络可视化库,支持今天看到的许多交互式网络地图。

3.C#:C# 是 Microsoft 对 Java 的回应(见下文),并且是 .NET 的旗舰编程语言。因此,如果开始使用 .NET SDK 编写新的 ArcGIS 附加组件(链接是外部的),那么将在 C# 中工作。

4.C++:C++ 是一种通用编程语言(派生自 C),具有面向过程和面向对象的特性,通常用于嵌入式系统。它于 1985 年开发,自 2004 年左右以来受欢迎程度普遍下降(可能是由于陡峭的学习曲线和普遍的复杂性),但它仍然保持了相当大的项目份额。通常使用的许多软件应用程序都是用 C++ 编写的,或者至少部分实现使用 C++(ArcGIS、Windows 操作系统、Firefox、MS Office 等),因此它不会很快消失。

5.Java:Java 仍然是一个受欢迎的选择,尽管它的受欢迎程度在大多数方面都在逐年下降。Java 用于 GeoServer(链接是外部的)和 Java 拓扑套件 ( JTS(链接是外部的)) 项目。

其他重要的编程语言

其他重要的编程语言

  • C:C 如同是家里的长辈。当需要顶级性能时,可以使用 C。如果需要编写设备驱动程序代码,那么很适合。但如果需要创建 Web 应用程序,那么则不太友好。许多开源 GIS 项目都是用 C 语言编写的。例如,GDAL(链接是外部的)(地理空间数据抽象库)是用 C 和 C++ 的组合编写的。
  • PHP:PHP 是创建交互式网站的最佳方式之一,因此非常受欢迎。
  • R 和 S:R 和 S 是脚本统计语言,具有许多非常复杂的空间统计数据,可以使用 ArcGIS 的一些输出。另外,就其本身而言,R 有许多空间扩展,支持广泛的地理空间功能。
  • Ruby:Ruby 是一种较老的语言,最近变得越来越流行。RubyonRails 使 Ruby 获得了巨大的吸引力,它使建立数据库支持的应用程序变得容易。GeoCommons 已将其扩展到网络地图,其他一些有趣的新地理网站,如 OpenStreetMap 和 WeoGeo 都使用 Ruby。
  • Rust:Rust 是一种开源语言,由 Mozilla 基金会的开发人员支持。它在概念上与 C++ 相关,但旨在更安全地应对安全威胁。随着更多基于 GIS 的 VR 发展,Rust 可能会变得更流行。
  • Shell:Shell 是一种用于 Unix(以及 Linux 和 Mac OS)环境的脚本语言。它允许用户将 Unix 命令链接在一起,让系统将其作为事件执行。
  • SQL:SQL 用作数据库访问和控制语言。SQL 是许多 GIS 操作的核心。SQL 是一种长期存在语言的很好示例。它存在了这么久,因为它是声明性而不是程序性的。换言之,SQL 语句会告知想要发生什么,而不是希望它如何发生。因此,实现细节是隐藏的,并且会随着时间而改变。这意味着 SQL 将在云计算世界中保持相关性。
  • TypeScript:TypeScript 是一种面向对象的编程语言,是 JavaScript 的超集。它被描述为“可扩展的 JavaScript(链接是外部的)”。与 JavaScript 一样,支持将 TypeScript 与 ArcGIS for JavaScript API 和 Google Maps JavaScript API 结合使用。Bing Maps SDK 还支持 TypeScript 以及在 TypeScript 中使用 Leaflet 等。

做出依赖于应用程序的选择

做出依赖于应用程序的选择

许多 GIS 项目利用不止一种上述语言。这是因为某些语言比其他语言更好地支持 GIS 中的不同任务。虽然不同的开发人员对语言与任务的最佳匹配有不同的看法,但以下任务语言列表(链接是外部的)是值得一看的(特定于 GIS 相关工作)由 Florin-Daniel Cioloboc 在 2016 年制作。

  • GIS 脚本和应用程序(Python、R)
  • 数据处理、分析和建模(Python、R)
  • 网络制图(JavaScript、Python)
  • 地理空间数据库 (SQL)
  • 地图服务器(Java、C# .NET、C++)
  • GIS 重量级开发(Java、C/C++、C#)
  • 移动开发(Android、iOS、JavaScript)
  • 地理空间库(JavaScript、Python、Java、R、C/C++)
相关推荐

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org