文章目录
- 1、xdh-map新德汇地图应用类库
- 1.1、独立引用
- 1.2、与MyUI结合使用
- 1.3、快速上手
- 1.3.1、采用项目工程模板创建项目【推荐】
- 1.3.2、 调用组件库功能
- 2、蚂蚁金服AntV-L7地理空间数据可视分析引擎
- 2.1、AntV-L7简介
- 2.2、核心特性
- 2.3、支持丰富的图表类型
- 2.4、如何使用
- 2.4.1、安装
- 2.4.2、引入对象
- 2.4.3、地图组件使用
- 2.5、效果游览
- 3、pygeo-tutorial - 用python分析时空数据的教程
- 3.1、介绍
- 3.2、教程目录
- 3.3、效果游览
- 4、vue3-ts-cesium-map-show
- 4.1、介绍
- 4.2、效果展示
- 5、java_map_download
- 5.1、介绍
- 5.2、功能效果![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9c63a3e274df4c1c989b0a5cba4d1749.png)
- 6、mars3d 三维地球
- 6.1、平台介绍
- 6.2、功能
- 6.2.1、 三维场景可视化
- 6.2.2、 数据标绘与管理
- 6.2.3、 场景与数据特效
- 6.2.4、场景工具
- 6.2.5、空间分析能力
- 6.2.6、高度兼容第三方
- 6.3、效果展示
- 7、open-geo-modeller - 地球流体力学模拟系统
- 7.1、介绍
- 7.2、使用
- 7.2.1、环境准备
- 7.2.2、发布地图
1、xdh-map新德汇地图应用类库
Gitee地址:https://gitee.com/newgateway/xdh-map
xdh-map - 基于Openlayers的地图应用Vue组件,内置了百度、高德、天地图瓦片,并支持与方正、超图、山海经纬、航天精一等PGIS厂商对接。
包含文本、图形、html、热力图、轨迹回放等20个组件,支持与ECharts结合实现散点、飞行迁徙等基于地理位置的图表,满足项目常见需求。
使用者不需要有地图相关专业知识,甚至不需要写任何JS代码就能实现通用功能。
1.1、独立引用
安装
npm i xdh-map --save
全局引用
import Vue from 'vue'
import 'xdh-map/lib/xdhmap.css'
import * as XdhMap from 'xdh-map'
Vue.use(XdhMap)
局部引用注册
import 'xdh-map/lib/xdhmap.css'
import {XdhMap} from 'xdh-map'
export default {
components: {
XdhMap
}
}
1.2、与MyUI结合使用
安装
推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。
npm i @xdh/my --save
1.3、快速上手
1.3.1、采用项目工程模板创建项目【推荐】
官网提供的基于Vue项目的一站式解决方案。
git clone https://gitee.com/newgateway/my-web.git
只需把工程模板项目获取下来就可以使用,包括全部功能,开箱即用。
1.3.2、 调用组件库功能
如只需用到 My 其中的某些组件,可以在已有的项目工程中安装,并完成配置。步骤:
- 安装组件库和相关插件
安装组件
npm i element-ui @xdh/my --save
安装项目依赖插件
npm i babel-plugin-component node-sass sass-loader --save-dev
- 配置 babel.config.js
组件采用了按需加载,需要 在babel.config.js 加上插件,如:
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
plugins: [
...require('@xdh/my/core/babel.plugins')
]
}
- 配置 vue.config.js
需要在vue.config.js加上别名,如:
module.exports = {
transpileDependencies: ['@xdh/my'],
chainWebpack(chain) {
chain.resolve.alias.set('$ui', '@xdh/my/ui/lib')
}
}
- 引用组件
到此,你可以开始引入组件开始编码了,如:
<template>
<my-map></my-map>
</template>
<script>
import {MyMap} from '$ui/map'
export default {
components: {
MyMap
}
}
</script>
2、蚂蚁金服AntV-L7地理空间数据可视分析引擎
2.1、AntV-L7简介
L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表
Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数据转化成
2D、3D 符号,通过颜色、大小、体积、纹理等视觉变量实现丰富的可视化表达。
官网:https://l7.antv.antgroup.com/
Github:https://github.com/antvis/L7/stargazers/
2.2、核心特性
🌏 数据驱动可视化展示
数据驱动,从数到形,支持丰富的地图可视化类型,更好洞察数据。
🌏 2D,3D 一体化的海量数据高性能渲染
百万级空间数据实时,动态渲染。
🌏 简单灵活的数据接入
支持 CSV,JSON,geojson 等数据格式接入,可以根据需求自定义数据格式,无需复杂的空间数据转换。
🌏 多地图底图支持,支持离线内网部署
高德地图国内合法合规的地理底图,Mapbox 满足国际化业务需求。
2.3、支持丰富的图表类型
点图层
- 气泡图
- 散点图
- 符号地图
- 3D 柱状地图
- 聚合地图
- 复合图表地图
- 自定义 Marker
线图层
- 路径地图
- 弧线,支持 2D 弧线、3D 弧线以及大圆航线
- 等值线
面图层
- 填充图
- 3D 填充图
热力图层
- 经典热力图
- 蜂窝热力图
- 网格热力图
栅格图层
- 图片
- Raster
瓦片地图
- 栅格瓦片
- 矢量瓦片
2.4、如何使用
2.4.1、安装
通过 npm 引入
// 安装L7 依赖
npm install --save @antv/l7
// 安装第三方底图依赖
npm install --save @antv/l7-maps
2.4.2、引入对象
在使用时通过 L7 命名空间获取所有对象并初始化,如 L7.scene、L7.GaodeMap
import { Scene } from '@antv/l7';
import { GaodeMap } from '@antv/l7-maps';
const scene = new L7.Scene({
id: 'map',
map: new L7.GaodeMap({
style: 'dark',
center: [110.770672, 34.159869],
pitch: 45,
}),
});
2.4.3、地图组件使用
- 初始化地图首先需要在页面中新增一个Dom 用于地图初始化。
<div style="min-height: 500px; justify-content: center;position: relative" id="map"/>
- 初始化高德地图
import { GaodeMap } from '@antv/l7-maps';
// 同样你也可以初始化一个 Mapbox 地图
const scene = new Scene({
id: 'map',
map: new GaodeMap({
pitch: 35.210526315789465,
style: 'dark',
center: [ 104.288144, 31.239692 ],
zoom: 4.4
})
})
- 添加图层
import { PointLayer } from '@antv/l7';
const pointLayer = new PointLayer()
.source(data)
.shape('circle')
.size('mag', [1, 25])
.color('mag', ['#5B8FF9', '#5CCEA1'])
.style({
opacity: 0.3,
strokeWidth: 1,
});
scene.addLayer(pointLayer);
🌟 此时在页面上就会出现可交互的地图内容。
2.5、效果游览
3、pygeo-tutorial - 用python分析时空数据的教程
3.1、介绍
大数据时代到来,随着数据的逐步开放,数据工作者们或多或少都要接触到时空数据。
数据处理是一门艺术!在处理时空数据的时候,你不仅要数据处理,还需要会GIS,最重要的它是一门艺术,要用你的审美,要出很好看的可视化图!
以前,我要用sql数据库处理数据,导出到excel画图表,再导出到arcgis出图,一套流程下来得开好几个软件,工作效率极低。
现在,python出现了,有了python里面的pandas,geopandas,matplotlib包,只需要用python就能实现数据的批量计算,批量出gis图等等。
哇!太棒了!简直是读研、读博、设计院画图、数据分析、闲着没事、居家旅行时候都必须会的技能,别说800张图了,电脑空间有多少我就能生成多少图,包您满意
通过本教程,你将从头开始,会学到一些时空数据的处理技巧,用python进行数据清洗,数据集计,数据整合,可视化!教程的后半段介绍了几个常用的python可视化包,最后是实战项目
3.2、教程目录
3.3、效果游览
4、vue3-ts-cesium-map-show
前端 vue3.0 + typescript 三维可视化 数字城市 数字孪生 选用 cesium开源GIS库
Gitee:https://gitee.com/hawk86104/vue3-ts-cesium-map-show
4.1、介绍
前端 vue3.0 + typescript 三维可视化 数字城市 数字孪生 选用 cesium开源GIS库 加入 主流地图 WebGL效果 完全开源 配合后台 实现可视化编辑保存。
技术栈
vue3.0 CLI4.x脚手架搭建,使用typescript作为逻辑代码,UI界面为elementPlus
GIS地图部分,使用Cesium-1.82开源库,简单了修改了地图展示部分代码 加入了主流的一些WebGL动态效果类
配合后台【thinkphp + mysql】
4.2、效果展示
5、java_map_download
gitee仓库地址:https://gitee.com/CrimsonHu/java_map_download
github:https://github.com/kurimuson/java_map_download
5.1、介绍
使用Java开发的地图瓦片图下载工具,支持以下XYZ瓦片图下载与合并。多线程瓦片图下载,最大限度地使用本机网络资源。
- OpenStreetMap
- 谷歌地图(需要代理)
- 天地图(务必更换自己的key,并注意配额)
- 高德地图
- 腾讯地图
- 必应地图
Build下载地址(已打包的可执行程序,解压即可运行)
重要提示:下载谷歌地图需正确使用代理,不能下载就是代理没设置好
若无法打开,请将文件夹改为英文,并注意文件夹所在详细路径是否为全英文
使用多网盘发布,防止链接失效(阿里云盘不允许分享压缩包,故不使用)
百度网盘:https://pan.baidu.com/s/1CA7sdH6zL4OjJxVydKwrWQ 密码:mdve
5.2、功能效果
6、mars3d 三维地球
6.1、平台介绍
Mars3D平台 是火星科技研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于Cesium优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。
Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL> 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过> Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
Github:https://github.com/marsgis/mars3d
国内Gitee:https://gitee.com/marsgis/mars3d
6.2、功能
Mars3D可以做什么?
通过Mars3D提供的Javascript API,可以实现以下功能:
6.2.1、 三维场景可视化
提供多种时空数据,包括影像、高程、矢量、实景、三维模型等各类数据的叠加融合、支持包括OGC、TMS、MapBox、3DTiles等标准服务与数据的接入加载。逼真地呈现三维地形、倾斜摄影、BIM、人工精模等多种类型的三维场景。
6.2.2、 数据标绘与管理
提供支持包括点、线、面、体、模型、军事标绘等多种矢量数据的标绘的使用与管理,提供多图层的标绘管理、提供矢量数据的统一风格的API调用和style样式设置,可导出导入标准GeoJSON格式数据。
6.2.3、 场景与数据特效
提供了多种环境特效,包括雨雪雾、光照、大气层、泛光、夜视等效果;也支持包括粒子、动态点、流动线、闪烁、扫描等多种特效,增强了应用场景的表达能力。提供了视频融合、水利水域、卫星仿真等多行业应用支持。
6.2.4、场景工具
提供了Popup鼠标单击弹窗、Tooltip鼠标移入弹窗、右键菜单的内置工具,可以方便的对地图、图层、数据进行绑定和交互。提供了状态栏、导航球、比例尺、分屏比对、卷帘比对等多种场景工具;提供空中、室内、行人步行、车辆贴地等多种飞行漫游路线功能;
6.2.5、空间分析能力
提供了包括距离、面积、高度、角度、剖面、体积等多种量算分析功能;提供通视、可视域、缓冲、日照、坡度坡向、淹没分析功能;提供了等高线、天际线、地表透明、地形开挖、模型剖切、模型裁剪、模型开挖等功能。
6.2.6、高度兼容第三方
提供对ArcGIS、OGC、SuperMap、各类在线地图、百度高德服务等各类第3方地图与服务的全面支持。提供对truf、heatmap、mapv、echarts等常用可视化库和开源库的功能接入集成,避免用户的重复学习和成本投入。提供对所有基于Cesium的第3方开发包和插件的接入支持,具备灵活的兼容性和功能解耦。
6.3、效果展示
7、open-geo-modeller - 地球流体力学模拟系统
Github:https://github.com/openmaptiles
7.1、介绍
OpenMapTiles是一个基于OpenStreetMap的可扩展的开放tile模式。这个项目是用来为在线缩放地图生成矢量贴图。
地球科学模拟有很多Awesome项目,本仓库建立地球科学模式的工作流,包含:区域性气象模式、地表水、地下水、地震波正演等数学模式,以及相应的前后处理程序。
选择HPC应用程序的思考维度包括:
- 前沿的数值算法;
- 并行模式和计算效率;
- 模型的工业级应用能力;
- 可迁移性(可应用于不同架构的处理器)。
即:Performance-Productivity-Portability (3P原则)
7.2、使用
7.2.1、环境准备
- 安装linux系统(openmaptiles开源库只能在linux系统上运行)
- 安装docker
- 安装Docker Compose
- 安装git
7.2.2、发布地图
openmaptiles开源库
github地址:https://github.com/openmaptiles/openmaptiles
快速入门文档:https://github.com/openmaptiles/openmaptiles/blob/master/QUICKSTART.md
- 拉取代码
拉取openmaptiles代码
git clone https://github.com/openmaptiles/openmaptiles.git
- 拉取完成后,进入目录
cd openmaptiles
- 执行make命令
make
- 处理数据
执行下面的快速启动命令,程序会自动进行OSM数据的下载、入库、分析、生成矢量瓦片的工作。默认是阿尔巴尼亚地区,生成瓦片的层级是0-7级。后面会讲如何设置地区和层级。这个命令执行时间会稍微有些长,需耐心等待。
./quickstart.sh
- 发布矢量瓦片服务
数据处理完成后,把生成的矢量瓦片发布成地图服务,步骤:
启动服务
make start-tileserver
在自己电脑浏览器中输入虚拟机ip地址加端口8080,我电脑的地址是
http://xxxxxxxxxx:8080/
点击 view 按钮,查看效果
- 自定义地图样式
启动maputnik
make start-maputnik
在自己电脑浏览器中输入虚拟机ip地址加端口8088,我电脑的地址是
http://xxxxxxxxxx:8088/
回到maputnik网页,点击下图蓝框中的按钮Data Sources,把上面的地址粘贴到绿框中,再点击红框中的删除按钮,关闭其它地图。关闭弹出框,就能看到我们发布的地图了。
接下来就可以自由奔放的自定义地图样式了