首页 > 其他分享 >学GIS开发,都应该了解的顺序!

学GIS开发,都应该了解的顺序!

时间:2024-12-06 13:32:46浏览次数:4  
标签:顺序 GIS 框架 WebGIS 地图 开发 Cesium

学习人群

一般来说,学习WebGIS开发的人员有两类。

  • 其中较为庞大的群体是3S(GIS、RS、GNSS)及相关专业的学生;

  • 另一类是计算机专业的学生

2024年陆续也有一些其他专业的人士也对进入WebGIS开发行业感兴趣,这里不多赘述。

这里重点讲述0基础的学生学习WebGIS的方法和路线。

通常,3S专业的学生在大学期间学习了多门相关课程,如:

  • C语言程序设计与开发

  • 地理信息系统概论

  • GIS 设计与开发

  • 面向对象设计与开发

  • 网页设计与制作

  • 人工智能与专家系统

  • 遥感地学分析

  • 空间数据库和关系数据库等

在此基础上,我们需要了解一些WebGIS开发的编程语言。

编程语言和基础

大家在学校所接触的编程语言也有多种,从C语言到C++、C#、Java等,相信大家都有所接触,其他专业的没接触过的也至少所有耳闻。

但是,这里要跟大家重点说明,毕竟编程语言的选择,非常重要!

虽然C语言是一种面向过程的语言,但在学习WebGIS时,我们需要理解面向对象的概念,其次也需要了解函数、类等概念。

一般来说,GIS专业的本科生,通过大学课程的学习,已经掌握了一些 GIS 的理论知识,如:地理信息系统的组成、地理空间数据获取、地理空间数据表达、地理空间数据处理、地理空间数据管理、地理空间数据分析、地图制图与空间可视化等。

同时,也掌握了一些桌面GIS软件,例如ArcGIS、ArcMap的使用。

所有这些理论知识为将来学习WebGIS奠定了基础。

如果有不了解GIS相关的基本知识,很难进行GIS开发;与此同时,WebGIS本质上是基于Web端的地图可视化应用,因此,我们还需要了解Web的基本概念和相关知识。

WebGIS的入门知识

学习WebGIS开发时,我们首先要接触的是Web端开发语言,可能说到这里,很多小伙伴都知道,我们要学习HTML、CSS和JavaScript等前端编程语言。

1)HTML\CSS

其中,HTML和CSS相对简单,比较容易上手。

大家可以利用新中地给出的智慧校园、智慧交通等包含前端编程的课程熟悉这几种语言。

学完以后,我们可以很快掌握如何搭建一个网站,并在项目中用我们搭建的网站实现一些功能。

2)JavaScript

学完HTML\CSS,接下来就是JavaScript,JS相对较难,需要我们花费更多的精力学习。

JS也是我们需要重点掌握的内容,因为如果不熟练掌握JavaScript,后续将很难在项目中进行灵活运用。

接下来,就能初步了解WebGIS开发的基本知识。

当然,后续我们还需要学习更多内容,因为WebGIS开发有很多形式。例如,有些人使用ArcGIS for JS API进行开发,有些人使用OpenLayers,还有人使用Mapbox GL或Cesium。

虽然上述内容的开发形式不同,但都属于WebGIS开发,并且都是通过调用封装好的类、属性和方法来实现的,其底层逻辑是可以融会贯通的。

看到这里,相信新手已经对自己要学习的内容有所了解。那么具体应该怎么学习呢?

这里推荐小白从下面两个项目入手:

1)智慧校园:零基础可学实战项目

第一章GIS开发概述

第1节-什么是GIS开发

第2节-WebGIS开发

第3节-如何学习webGIS开发

第4节-GIS平台

第5节-术语与名词

第二章开发环境搭建

第1节-开发软件

第2节-高德开放平台

第三章Web开发篇

第1节-HTML快速入门

第2节-CSS快速入门

第3节-JavaScript快速入门

第四章WebGIS开发

第1节-开发准备

第2节-地图显示

第3节-地图控件

第4节-点标记

第5节-几何计算

第6节-GeoJSON

第五章实战案例

第1节需求分析

第2节设计方案

第3节具体实现

图片

2)智慧交通实战项目

图片

WebGIS框架

这一点我们之前重点讲过,没看过的小伙伴可以看下面的详细介绍:

这里我大致提一下,WebGIS开发的引擎分为四大类:

1)Charts可视化图表

主要负责可视化功能,以D3.js,Echarts等为代表。

图片

2)LBS地图开放平台

LBS就是Location Based Service,国内的LBS以高德/谷歌/百度/天地图等为代表。

图片

3)WebGIS商业API

这类也是工作中比较常见的,例如ESRI的ArcGIS API For JS,超图的IClient,中地数码的MapGIS Client for JS,都属于商业API。

图片

4)WebGIS开源API

开源框架是目前使用最多最广泛的,比较出名的就有Leaflet,OpenLayers,Cesium,MapboxGL等。

图片

根据目前就业需求来看,大多数企业要求会开源框架,因此我们学习也以开源框架为主,那这里又主要分为二维和三维框架。二维包括openlayers、leaflet等;三维包括mapbox以及threejs、cesium等。下面一一进行介绍。

二维框架:openlayers

openlayers是最所有初学者必须要掌握的第一个框架。下面是openlayers的知识图谱,来源网络:

图片

从上图中可以看出,OpenLayers 实现了上百个类,用于对GIS中的各种事物进行抽象表达。

其中 Map,Layer,Source 和 View 是 OpenLayers 框架体系中的核心类,几乎所有动作都围绕这几个核心类展开,以实现地图加载和相关操作.

在Openlayers的体系框架中,把整个地图看作一个容器(Map),核心为地图图层(Layer),每个图层有对应的数据源(Source),并由地图视图(View)进行地图表现。地图容器上还支持一些与用户交互的控件(Control 和 Interaction),另外 Openlayers 还支持事件机制。

总之,OpenLayers 使得在任何网页中放置动态地图变得很容易。它可以显示贴图,矢量从任何来源载入的数据和标记。OpenLayers 已经被开发来进一步使用各种地理信息。它是完全免费的开源JavaScript。

openlayers开发学习教程:

图片

之前我们说过,Mapbox是二三维结合的一款框架,也是三维框架里面最容易入手的一个。

三维框架Mapbox

官网:https://www.mapbox.com/

Mapbox是⼀个可以创建各种自定义地图的网站,如 Pinterest、Evernote、Github、500px 等大牌都使用Mapbox创建地图。

Mapbox宣称要构建世界上最漂亮的地图。

已为Foursquare、Pinterest、Evernote、⾦融时报、天⽓频道、优步科技等公司的网提供了订制在线地图服务。

Mapbox针对不同平台均开发了相应的GIS引擎以满⾜开发者或相关用户的需要,如:iOS SDK(⽤于iOS端开发)、Android SDK(用于Andriod端开发)、Navigation SDK(用于Navigation端开发)、Unity SDK(用于Unity端开发)、GL JS(用于web端开发)。

不同平台的SDK,除使用⽅式不同外,功能特性上也多多少少存在不同。此外,Uber还针对react开发了 react-map-gl。

总的来说,Mapbox的开源技术栈是⾮常全面的。

图片

图片

三维框架:cesium

Cesium是一款使用JavaScript开发的基于WebGL的,能够实现三维地球和地图可视化的JS库。

Cesium支持海量的三维模型数据、影像数据、地形高程数据、矢量数据等丰富的地理数据的加载。在交通,规划,城市管理,地形仿真等领域有非常广泛的应用。

前面也给大家反复介绍过cesium,它是目前功能最齐全的三维GIS开发框架,也是在就业过程中,企业最看重、面试最容易被考核的一个。

图片

初学者刚接触Cesium时,看到它的文档,可能会被震惊到。

毕竟cesium库中的类实在是太多,每一个类又有大量的函数和属性,而且官网的文档又是英文,这给我们学习GIS开发的同学带来了极大的困扰。

图片

但是接触多了,我们会发现,其实Cesium开发文档里边的好多类属性和方法都是一样的。比如,在Cesium中,一个非常重要的类是Viewer。

如果要使用Cesium创建一个三维窗口,几乎无法避免使用Viewer类。因为它代表了Cesium的三维窗口。

图片

全局飞线

标签:顺序,GIS,框架,WebGIS,地图,开发,Cesium
From: https://blog.csdn.net/2403_88103571/article/details/144282425

相关文章

  • SSM蔬菜订购系统996me(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着人们生活水平的提高和健康意识的增强,蔬菜作为日常饮食的重要组成部分,其品质和购买便利性成为消费者关注的焦点。传统蔬菜销......
  • SSM社区志愿者信息管理系统q8e4m(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着社区服务的不断发展,志愿者在社区建设中发挥着越来越重要的作用。为了更好地管理志愿者信息,提高志愿者服务的效率和质量,我们计划开......
  • Linux应用开发 - 删除某文件之外的文件或目录
    By:fulinuxE-mail:fulinux@sina.comBlog:https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录环境准备编写程序编译和测试环境准备mkdirdel_dir/cddel_dir/编写程序vimdelete.c/*fulinux@sina.com*/......
  • 12.8实验三:JFinal极速开发框架实验(2024.11.29日完成)
    实验三:JFinal极速开发框架实验(2024.11.29日完成)一、实验要求  任务一:了解Maven及其使用方法,总结其功能作用(占20%)     任务二:学习JFinal框架,基于Maven建立JFinal工程,并对JFinal框架功能进行总结介绍(占30%)     任务三:基于JFinal完成一个简单的学生信息管理系统(......
  • NFC碰一碰发视频源码开发,支持OEM
    一、引言 在移动互联网与智能硬件飞速发展的当下,新颖的营销与信息传播手段层出不穷。NFC(NearFieldCommunication,近场通信)技术凭借其便捷、高效、近距离无感交互的特性,逐渐在各领域崭露头角。本文聚焦于利用NFC碰一碰功能实现发视频这一创新应用,深入剖析其源码开发过程,并......
  • 用Python开发一个经典贪吃蛇小游戏
    Python是开发小游戏的绝佳工具,借助第三方库,如pygame,我们可以快速开发一个经典的贪吃蛇游戏。本篇将介绍如何用Python实现一个完整的贪吃蛇小游戏。一、游戏设计1.1游戏规则玩家通过方向键控制贪吃蛇移动。贪吃蛇吃到食物后会变长,同时得分增加。如果贪吃蛇撞到自己......
  • 【大模型应用开发 动手做AI Agent】具身智能的实现
    【大模型应用开发动手做AIAgent】具身智能的实现关键词:大模型、AIAgent、具身智能、应用开发、深度学习、自然语言处理、计算机视觉、人机交互、机器人控制摘要:本文将探讨大模型在具身智能中的应用,通过动手实践构建一个AIAgent。文章首先介绍了大模型的基本概念和特......
  • 显示设备驱动开发
    当代显卡设备驱动包括了显示、GPU计算两个主要功能,在DRM框架下的显卡驱动通常有内核驱动模块(KMD)、用户空间驱动模块(UMD)组成,KMD主要是和显卡硬件交互,UMD则完成2D、3D图形的渲染、视频硬件界面。UMD与KMD配合将显卡的功能最大限度发挥出来。文章目录一、注册驱动二、设......
  • 【Unity 科幻角色资产包】SCI FI CHARACTERS MEGA PACK Vol 1 大量高质量的科幻风格角
    SCIFICHARACTERSMEGAPACKVol1是一款专为Unity开发者设计的角色资产包,提供了大量高质量的科幻风格角色模型、纹理、动画和预设,旨在帮助开发者快速构建具有未来感的游戏角色,特别适合科幻、未来城市、太空战斗等类型的游戏。该插件包含了多种不同的角色和配件,可以用于创......
  • jboit ai 平台开发工作记录
    以下关于下拉框联动代码,关健代码红色标注,每句都有注释, <!--定义表单,提交到admin/school/testForm,阻止默认提交行为--><formid="schoolTestForm4"method="post"action="admin/school/testForm"onsubmit="returnfalse;"><!--一级下拉菜单-->......