WebGIS技术汇总

news/2024/11/27 21:00:31/

WebGIS系统通常都围绕地图进行内容表达,但并不是有地图就一定是WebGIS,所以有必要讨论下基于Web的地图API分类及应用场景。

Web上的Map API主要分类如下几类:

  • Charts:以D3.js,Echarts等为代表。
  • LBS:以高德/谷歌/百度地图等为代表。
  • WebGIS商业API:ESRI的ArcGIS API For JS,超图的IClient。
  • WebGIS开源API:Leaflet,OpenLayers,Cesium,MapboxGL等。

建模工具Blender

https://zhuanlan.zhihu.com/p/628531907

Leaflet

https://leafletjs.com/

OpenLayers

https://openlayers.org/doc/quickstart.html

https://blog.csdn.net/qq_29602347/article/details/99623968

https://viglino.github.io/ol-ext/examples/map/map.layer.3D.html

Cesium

https://github.com/CesiumGS/cesium

https://sandcastle.cesium.com/?src=3D%20Tiles%20Photogrammetry.html

框架比较:主流webgis框架介绍与对比-腾讯云开发者社区-腾讯云

常用的前端地图框架(WebGIS框架)

1. Leaflet

Leaflet 是最著名的前端地图可视化库,它开源、体积小、结构清晰、简单易用。

2. Mapbox GL JS

Mapbox GL JS 是目前最新潮的前端地图库,它的矢量压缩、动态样式和三维性能令人印象深刻。它本身是开源的,但一般依赖于Mapbox公司提供的底图服务。

3. ArcGIS API for JS

ArcGIS API for JS 是较为学院派的前端地图库,它是ArcGIS开发套件中的一部分,和桌面端和服务器端ArcGIS软件有较好的协作。它不开源且收费不低,在学术场景下较为常用。

4. Openlayers

Openlayers 也是常用的前端地图库,它开源,相比于Leaflet更加复杂和完备。

5. Cesium

Cesium 是三维地理可视化的常用库,在大尺度的可视化(地形、建筑、地球)中十分常用。

6. 百度地图 JS API /百度地图 API GL

百度地图 JS API 是传统的二维地图,百度地图 API GL 是三维地图,它们依赖百度地图提供的后台服务。除了地图服务外还有检索、导航、实时交通等关联服务。开发者有免费的限额。

7. 高德地图 JS API

高德地图 JS API 与百度类似。

8. Google Maps JS API

谷歌地图 JS API 在境外有更好的数据。

9. AntV L7

AntV L7 是空间数据可视化库,它可以使用高德地图等协作构建地图可视化。

10. Mapbox.js

Mapbox.js 是 Leaflet 的一个扩展插件(与 Mapbox GL JS 不同)。

webgl开源三维引擎的选择

小场景的开源三维js引擎

1.babylonjs:http://www.babylonjs.com/(当前在用)

优点:有微软背景,有不少的demo,有较详细的api文档,有供测试的平台,有提供3dsmax转换模型的插件,

缺点:中文资料很少,没有系统的中文教程,如从入门到精通都可以给你讲一遍系统的教程,论坛也会被墙,相关的qq群较少,群里的人也不多,所以能真正指导我们的大牛也比较少。应该是国内用的 比较少。

2.threejs(当初选择引擎时关注过,选择了babylonjs后就没有去进步了解了)

优点:国内用的比较多,所以中文的资料也会比较多,有比较系统的中文教程如从入门到精通。用的人比较多,所以相关的qq群较多,群里的人也较多,接触到的大牛应该也会比较多。

缺点:没有提供一些基础建模软件的插件,比如3dsmax的模型导出插件,虽然说提供一些读3ds格式,fbx格式的场景。

大场景基于earth的开源三维js引擎

1.cesiumjs(http://cesiumjs.org/)

优点:有较多的demo,详细的api文档,有测试平台,比较丰富的展示特性和扩展。

2.webglearth(http://www.webglearth.com/)

demo较少,但一些基本的gis功能都有,简单实用,好像没什么更新过

3.openwebglobe(http://world.openwebglobe.org/)

效果不是很好,加载不流畅,展示的功能也比较少,后面就没有进步了解了

WebGis后端

arcgisServer、geoserver、mapserver ……

WebGis中间件

开发时,我们要选择适合自己的中间件。不同的中间件有其特性,如果是一般项目,tomcat等是很合适的,其使用方便,相关技术支持和资料也很好查找。但是如果是大型的集群项目,Weblogic和WebShpere可能是更好的选择,但是这两个中间件首先配置就是有难度的,同时不同的版本,可能对某些jar包的支持存在问题。如果项目必须使用国产的中间件,TongWeb和Apusics是不错的选择。

WebGis地图服务器

在WebGIS中,与其他一般的Web工程有明显区别的就体现在地图服务器上面。一般的地图服务器都由已有的软件商提供了解决方案,比较流行的有AGS、Geoserver、MapServer、SuperServer等。利用这些地图服务器我们能很好的实现地图的发布以及对一些空间查询和空间操作的支持。

WebGis业务服务器

业务服务器是Web项目里不可获取的一环。不管是利用哪些已有框架编写,比如Spring、Struts、Hibernate等,我们一般还是会将业务服务器的实现分为三个层次,即有名的MVC模式。而不同的框架里这三个层次的实现各有差别。

WebGis数据

WebGIS的数据大致可以分为三种,一种是地图、影像数据,一种是空间属性数据、一种是业务数据。地图、影像数据一般是一些png或者其他格式的数据组成。

在GIS中有个很重要的概念,即影像金字塔。这个概念主要是为了加速地图在前端的显示。而我们准备地图、影像数据时,也一般会首先对这些数据进行切图。

空间属性数据,是通过一些工具将已经整理好的数据进行入库。对于AGS,只有连接的是入库数据的mxd,才能发布成FeatureServer服务,以供数据的编辑。当然,空间数据入库后还可以支持业务逻辑的使用。

第三种数据,业务逻辑数据,是每个Web项目必须有的,它根据不同的业务需求将业务所需的数据进行采集和入库。


http://www.ppmy.cn/news/1550441.html

相关文章

华三(HCL)和华为(eNSP)模拟器共存安装手册

接上章叙述,解决同一台PC上同时部署华三(HCL)和华为(eNSP)模拟器。原因就是华三HCL 的老版本如v2及以下使用VirtualBox v5版本,可以直接和eNSP兼容Oracle VirtualBox,而其他版本均使用Oracle VirtualBox v6以上的版本,所以正常安装HCL模拟器无法和ENSP兼容。 环境及组件:…

【jvm】从字节码角度看待对象创建流程

目录 1. 分配内存空间2. 初始化内存空间为零值3. 设置对象头4. 调用构造函数初始化对象5. 示例代码6. 字节码指令解析 1. 分配内存空间 1.在Java中,对象存储在堆(Heap)内存中。2.当创建一个新对象时,JVM首先需要为对象分配一块内…

HTML飞舞的爱心

目录 系列文章 写在前面 完整代码 代码分析 写在后面 系列文章 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心(简易版)7HTML粒子爱心8HTML蓝色…

unity小:URP下shaderGraph管道流光效果(节奏速率可控)

效果预览 实现原理 该效果的核心原理是利用时间变量(time)的变化结合正弦函数(sine)的特性来动态改变UV坐标。通过这种方式,我们可以实现动画效果。具体实现步骤如下: UV坐标动态变化:通过时间…

修改Android Studio项目配置JDK路径和项目Gradle路径的GUI工具

概述 本工具提供了一个基于Python Tkinter的图形用户界面(GUI),用于帮助用户搜索并更新Android Studio项目中的config.properties文件里的java.home路径,以及workspace.xml文件中的last_opened_file_path路径。该工具旨在简化手动…

World of Warcraft /script SetRaidTarget(“target“, n, ““) n=8,7,6,5,4,3,2,1,0

魔兽世界执行当前目标标记方法 /script SetRaidTarget("target", n, "") n8,7,6,5,4,3,2,1,0 解析这个lua脚本 D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns\wMarker wMarker.lua /script SetRaidTarget("target", 8, &quo…

怎么在宿主机上通过ssh连接虚拟机 VirtualBox 中的linux系统

通过 Xshell 连接 VirtualBox 中的 linux 虚拟机,您需要确保以下几个步骤都正确配置: 1. 配置 VirtualBox 网络 您需要将 VirtualBox 虚拟机的网络适配器设置为支持 SSH 连接的模式: 打开 VirtualBox,选择您的 Ubuntu 虚拟机&am…

学习笔记032——Spring学习笔记

文章目录 一、Spring开发步骤二、Spring配置文件1、Bean标签基本配置2、Bean标签范围配置3、Bean生命周期配置4、Bean实例化三种方式5、Bean的依赖注入概念6、Bean的依赖注入方式【第一种:set方法注入】【第二种:构造方法注入】 7、Bean的依赖注入的数据…