Cesium系列(2)--绘制图片文字标注
基于Cesium Billboard的图文标注背景 项目需求:在模型上方添加文字标注,背景是一张图片。 如果只是加文字的话,Cesium 直接加一个label就行了,或者只加一个图片,Cesium 直接加一个 billboard 也是可以的。如果是两者结合是需要另外处理的。
单独文字 单独加文字可以直接用 label, 伪代码如下: viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222), label: { text: "Philadelphia", font: "24px Helvetica", fillColor: Cesium.Color.SKYBLUE, outlineColor: Cesium.Color.BLACK, outlineWidth: 2, style: Cesium.LabelStyle.FILL_AND_O ...
Cesium系列(1)--Vue-cli3 + Cesium 快速构建
vue-cli3集成Cesium的vue.config.js配置前言 2020年给你讲个笑话,鹅厂被骗了。hhhhhhh。 很久没更新了。疫情影响,经历了在家办公,也经历了出门戴口罩的时期。不过,一切都会好的。 言归正传,新的一年,不管经历了什么都要继续。今年准备从二维转战三维了,开源免费的目前也就是Cesium了。之前一直都知道这个,只是从来没有真正的使用过,接触过。刚开始的时候,就看了一天的资料,也就是本地运行一下,大致看了一下代码和案例。然后就给我一个项目让我直接该需求了,头两天也是有点手忙脚乱,现在大概了解一点了,就记录一下最近遇到的问题。
步骤
有个vue-cli3的项目, 然后用 npm 命令去安装 cesium
npm i cesium 或者 cnpm i cesium
安装 cesium 之后 需求在 vue.config.js 文件中去配置,如果没有该文件就在根目录新建一个。
配置内容
const CopyWebpackPlugin = require('copy-webpack-plugin')const webpack = req ...
mapboxgl工具发布经验总结
mapboxgl-print-tool 是 1.0.5 版本mapboxgl-measure-tool 是 1.0.6 版本
介绍 在发布 mapboxgl-print-tool 和 mapboxgl-measure-tool 的过程中遇到了各种问题,毕竟是第一次发布npm包,具体怎么弄也都是网上搜各种博客看到的,也许适用当时他们的,但或许版本或者环境的原因不适合我现在的。 所以在这记录一下这几天遇到的问题和对应解决办法
npm
npm初始化
注册自己的npm账号
项目创建一个仓库,我一般都是在 github 上创建。之后把git地址在本地下载之后,运行 npm init 开始初始化
npm发布注意
1、要支持CommonJS模块化规范,所以要求打包后的最后结果也遵守该规则。2、Npm模块使用者的环境是不确定的,很有可能并不支持ES6,所以打包的最后结果应该是采用ES5编写的。并且如果ES5是经过转换的,请最好连同SourceMap一同上传。3、Npm包大小应该是尽量小(有些仓库会限制包大小)4、发布的模块不能将依赖的模块也一同打包,应该让用户 ...
mapboxgl-print-tool
mapboxgl-print-tool地图全图打印,框选打印导出图片
使用
CDN
// 依赖file-save下载图片 <script src="https://cdn.bootcss.com/FileSaver.js/2014-11-29/FileSaver.min.js"></script>// 引用 <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.js"></script>
```js<script> mapboxgl.accessToken = 'pk.eyJ1IjoiamVyY2t5IiwiYSI6ImNqYjI5dWp3dzI1Y2YzMnM3eG0xNnV3bWsifQ.eQp4goc9Ng8SuEZcdgNJ_g'; var map = new mapboxgl.Map({ container: ...
mapboxgl-measure-tool
mapboxgl-measure-tool 基于mapboxgl、mapboxgl-draw、turf测量控件
使用
CDN:
<!--依赖--><script src="https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl.js"></script><script src="https://cdn.bootcss.com/Turf.js/5.1.6/turf.js"></script><script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.0.9/mapbox-gl-draw.js'></script><!--引用--><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist ...
基于开源olplot源码修改为mapboxgl版本-地图标绘
特殊的节日里,祝愿老师们节日快乐!
前言
啰嗦几句:最近经历了很多事情,生活上、工作上、感情上各种事情。就一句话,不会一直如自己愿的,命运总是看不惯一个人安逸太久。也一个多月没有更新技术博客了,一方面是工作太忙,真的很忙。一方面是心理的打击太大,没心思去写了。今天趁着心情缓解一些,就写一个关于工作中遇到的需求。地图标绘,基于mapboxgl版本的。
说实话,刚听到这个需求的时候,我的内心是拒绝的。因为了解mapboxgl的道友们都会明白,mapboxgl的api很少,真的很少。它是重在展示而不是交互。关于标绘,之前只是知道有这个东西,觉得很复杂,就没有深入了解其原理。其实即便是这次能粗略的改版成功,底层的算法我也是没有细看,只是了解其中的流程而已。
原理简介
总流程:标绘的总流程大致分为3步
第一步:根据鼠标点击事件获取几个关键点
第二步:用算法,根据所点击的关键点,生成其他的点
第三步:利用生成的点进行填充渲染。就得到了所需的标绘形状。
所以核心的还是在算法里面,所幸的是有位开源的大佬已经把算法写好了,看这里 plot ,所以剩下的相对来说简单一点了。
现有问题
ma ...
命运总是喜欢开玩笑
趁着我现在还能抗的住
纠结
有一段时间,我打算写博客,却不知道从何处下手。自己觉得简单的东西,很多东西网上都可以搜到很多,写了感觉就像是重复造轮子。可是难的技术,却没有完全掌握,也不敢拿出来卖弄,以免误导。因此,陷入了两难的境界,而犹豫不决。
最近工作上的强度提升,心理上的又遭受到了重大打击,整个人都处于没有浑噩的状态,每天都会处于崩溃的边缘,不知道哪一天,我会彻底的压制不住那些所有的负面情绪,然后整个人爆发。趁着我还能抗的住,就觉得先试着放开。既然这个博客网站是自己的,那我自己不仅仅可以记录技术方面的,生活也同样可以。没有生活的人,不切实际。
决定
今天起,我的博客应该更加丰富,记录自己的人生的点点滴滴,不为别人,只为自己。
我是一个话很少的人,相对的,我更喜欢写。我喜欢沉寂在打字的平静之中,这样会让我放松,也可以更加的可以思考。
我自己
每天处于心理上的痛苦,身体上的疲劳,整个人只有上下班和夜晚,戴着耳机听《蔡康永的情商课》才能让自己慢慢的平静下来。 我是属于情商低的那种,换言之就是现在的直男。对自己的情绪不能主导,经常会被情绪主导自己。我也是属于依赖型的人,对自己 ...
Python---PostGIS生成矢量切片
背景
矢量数据,注重空间位置展示,属性隐含其中。
在矢量切片之前,web端的矢量数据展示分两种:
按需请求,比如arcgis server发布的动态服务。这是按照范围内进行,返回要素和信息。这种频繁交互,增大服务器的压力。
一次加载全部,前端按需渲染。比如geoserver的wfs geojson格式加载 。这种遇到数据量大的时候,在页面初始加载时,会比较慢。
针对上述两种情况,如果把矢量进行和栅格数据那样,按照金字塔的方式进行切片,但是保留原来矢量属性,那加载方式就会提升。矢量切片标准是mapbox 最先提出的,相关标准移步这里
相关简介
矢量切片目前格式
geojson、topjson、mvt(mapbox)
相关工具
目前我了解的矢量切片服务发布工具:arcpro、geoserver。其他的还没接触到
postgis中的ST_AsMVT和ST_AsMVTGeom
ST_AsMVT 是postgis提供的空间函数,能够返回矢量切片,它和ST_AsMVTGeom是同时使用的。ST_AsMVT
ST_AsMVTGeom
- ST ...