免费的GIS编程教程:学习如何编码


发布日期 : 2022-07-19 00:54:55 UTC

访问量: 312 次浏览

![免费的GIS编程教程:学习如何编码](https://www.osgeo.cn/static/upload/aa/aac5956c-06fc-11ed-b73b-00163e056ce7_m.jpg)

很多人认为学习编程很难, 但事实上,学习编程是未来任何技术工作的基本技能, 在不远的将来, 可能会成为一种基本办公技能, 因此,学习 GIS 编程是很重要的。 本文将带大家学习 GIS 编程教程 - 如何编码, 可以根据自己的需要进行参考。

通过实践学习编码

有时学习编码的最佳方法是远离 GIS, 只专注于编码方面, 往往练习编码的次数越多,就会越熟练。 学习如何编码的最流行的方法之一是直接通过浏览器练习编码, 以下是能够执行此操作的顶级交互式编码平台, 如果您对在线交互式编码平台感兴趣, 可参阅以下内容, 帮助您培养编程技能:

1.获得 GIS 编程和 Python 认证

Python 一直是 GIS 中的标准语言, Esri 和开源都倾向于使用它。 如果您是 GIS 编程的新手, 建议您先学习 Python, 它一直非常受大家的欢迎。 通过利用 Python 库, 许多人认为这种 GIS 脚本语言是领先者。

Python 标识

以下是推荐的可以提高 GIS 编程技能的免费课程:

  • Python 编程的基础和最佳实践: 学习变量、条件和循环来控制程序的流程, 利用复杂数据结构的力量,如列表、集合、字典和元组。
  • 用 Python 编写代码:利用 NumPy、Pandas 和 Matplotlib 等 Python 库来处理数据, 此课程的重点是数据分析和工程。
  • 编码词典:此课程揭开了开发中常见的令人生畏的术语和行话的神秘面纱,以及了解程序员每天的工作以及版本控制。

2.GIS 应用程序编程 – C++、.NET、C

除了 Python,GIS 程序员还使用 C++、C# 和 .NET。 C++ 允许在多种环境中工作, 具体来说, C# 和 .NET 语言提供了开发工具以及与基于 Windows 的软件的交互。 以下是 3 个入门课程, 可应用于您的编程之旅, 且所有课程均免费, 可根据需要自行安排学习。

  • C++ For Programmers:本 C++ 课程侧重于“如何”而不是“什么”。 它不是教给大家什么是函数, 而是指导如何在 C++ 中创建一个函数。
  • Java 中的面向对象编程:利用对象、承接和集合构建交互式 Java 程序。 OOP 将代码维护为对象并通过实例化重用代码, 无论您选择哪种编程语言, 都可以将 OOP 与其结合使用。
  • Esri 培训课程和 MOOC: 本课程重点是脚本语言以及如何在 Esri ArcGIS 桌面自动化 GIS 任务。

NET 标识

3.JavaScript – 让网页更具交互性

如果想让网页动态化, JavaScript 会在 Web 浏览器中运行并操纵基于网络的内容的行为。 例如,Esri 的Javascript API 是 Flex 和 Silverlight 的接替者。 以下免费课程提供了很好的 JavaScript 基础,供大家参考:

JavaScript

  • JavaScript 简介: JavaScript 入门课程可帮助您构建现代 Web 应用程序, 为任何应用程序、网站或系统奠定基础。
  • 面向对象的 JavaScript:了解如何使用 JavaScript 框架中 的面向对象编程功能来构建具有可维护代码的应用程序。 OOP 无需复制和粘贴代码行, 而是帮助将自己的代码块构建为库。

如今,Web 开发已成为热门话题……GIS 行业也不例外, 如今它也越来越倾向于交互式 Web 地图和 ArcGIS Online 等基于云的平台。 如果您正在寻找这种需求量很大的编程语言, 请查看是否可以在 Codecademy 上找到免费课程。

4.SQL 和 UML – 数据库管理

GIS 系统依靠数据库输入、编辑和维护来管理数据。 几乎所有现代数据库系统(DBMS)都使用 SQL(结构化查询语言)。 以下是可以升级 SQL 的免费课程,供大家参考:

数据库

  • 用于数据分析 的SQL: SQL 查询可帮助管理关系数据库中的数据。 本课程教您如何使用 SQL 来存储、查询和操作数据。
  • 关系数据库简介:学习使用数据库作为后端编写代码的必要技能。 此外,它还教授如何使用 Python API 将 Python 代码连接到数据库。
  • 数据库系统概念与设计:佐治亚理工学院通过一个主要的现实世界项目教授数据库设计, 例如,数据库使用查询、输入和删除来微调数据。

如果要在 GIS 中工作, 则应熟悉 SQL 并能够执行 SELECT、INSERT、MODIFY 和 DELETE 语句, 同样,关联和进一步的 SQL 知识在该领域受到极大的重视。 给定数据库后, 您应该能够浏览其中的数据模型, UML 图概述了每个数据库的设计结构, 这就是 Microsoft Visio 等设计工具可以简化结构设计过程之处。

5. R Spatial – 统计和数据分析

统计学家和数据挖掘者利用 R 进行开放式统计软件开发和分析。 但您可能不知道的是, GIS 已经通过 R Spatial 采用了这种统计计算、可视化和分析。

R Spatial – 统计和数据分析

同样,最好学习一些与地理信息系统没有严格联系的编程语言/软件包, 建议可在 R 注册这些免费课程:

  • 使用 R 进行数据分析:通过 R 利用更正式的统计方法对数据进行可视化分析和调查。
  • 统计简介:使用统计数据从数据中提取意义。 本课程将向您介绍在数据中的可视化关系技术, 以及使用数学理解关系的系统技术。
  • 使用 R 进行数据可视化:了解适用于 R 的 ggplot2 数据可视化包中的所有内容, 并将此概念应用于基本的条形图、直方图、饼图、散点图、折线图和箱形图。

6.Leaflet 和 OpenLayers – 构建复杂的网络地图

丰富的 Web 地图通常使用开源 JavaScript 库(如 Leaflet.js), JavaScript 库是别人写的代码, 这往往与 Python 模块的分布方式相同。 例如,JQuery,three.js 和 bootstrap 均是当今使用的 JavaScript 库。 当使用 Leaflet 时, 可以从 JavaScript 库构建自己的 Web 地图。 这就是为什么 JavaScript 在 GIS 中具有如此出色的交互式查看功能的原因。 Leaflet.js 有据可查且易于学习, 利用 JavaScript 几乎可以执行任何操作, 如从空间分析到强大的底图服务器。

GIS 数据层

  • Leaflet for Beginners:使用 LeafletJS 构建基于地图的应用程序, 另外,学习 LeafletJS 的核心概念。
  • OpenLayers 3 示例:这个免费资源提供了集群、动画、GeoJSON、热图、WebGL 等的代码示例。

但是,除非应用动态 Web 地图, 否则将无法真正了解如何创建动态 Web 地图, 以及利用更复杂的 Web 地图工程测试您的知识, 例如,制作至少包含 2 个可切换图层的 Web 地图。

7.HTML 和 CSS 标记

HTML 是一种标记语言, 它为网页提供结构,如标题、表格和列表等。 虽然 CSS 使用布局设计网页样式, 但它也提供颜色、字体和大小等功能, 此外,Dojo 工具包还提供了语言实用程序和 UI 组件。

HTML and CSS

  • HTML 和 CSS 简介:本课程将教授给大家 HTML 和 CSS 的基础知识, 以及 HTML、CSS 和 JavaScript 协同工作以创建动态 Web 内容。 如果您已经在使用 JavaScript, 则会发现 HTML、CSS、JavaScript、XML、JQuery 和 AJAX 在 Web 开发中存在价值的原因。 随着 GIS 技术向云端的转移, Web 开发可能只是一个更好的职业选择。

GitHub 和 CodeAcademy 编码社区

GitHub 就像是开发者的 Facebook, 它是一个开放的社区, 能够帮助开发人员了解其同行正在做什么。 GitHub 开发人员可以按版本检查项目的整个历史记录, 还可以研究项目的代码并自行修改。

GitHub

  • 如何使用 Git 和 GitHub: 在项目的整个生命周期内使用版本控制, 并通过 GitHub 进行优化协作。
  • CodeAcademy:免费学习编码。 CodeAcademy 为所有级别学员提供交互式动手学习, 并在每一步提供技术指导。

GIS 编程 - Python, JavaScript, R 等

接下来就可以挑战自己了, 通过以上提及的 GIS 编程技能将所学的知识付诸实践, 例如,可以从简单创建个人 Web 地图项目开始, 获取纬度和经度坐标, 并使用 Leaflet、ESRI API 或 D3 将其放在网络地图上。

如果想学习 Python, 可以通过构建自己的工具箱来管理和处理。 例如,将 Excel 文件导入 ArcGIS 并使用 Python 脚本对该 shapefile 运行分析。 使用 Python 的最大优势是可以自动化工作流程并重复冗余任务。 同样,如果您处于求职中, 简历中添加您对 Python 编程的应用知识可以提升您的经验值, 录取通过率会更大。