cesium绘制网格_cesium 实现经纬线绘制和经纬度标注
今天某客户提出要实现在地球上经纬线显示和经纬度标注,看了官方资料,没有相关api,网上也看了好多帖子,基本都是实现的贴图划线(话说官方本来就有不同等级的贴图网格 根本不需要你来画),只有在github上找了一个cesimu-Graticule.js,经纬度是画出来了,话说你有那么明显的bug放出来干啥????
what???说白了,没得抄~~ o(╯□╰)o
所以自力更生吧,思路很简单,画的很low,大概效果是这样的
废话少说,直接上码:
###绘制经度线以及经度标注
latLongLine.lang = [];
//经度
let langS = [];
//每隔20° 画一条线
for (let lang= -180; lang <= 180; lang += 20) {
let text = "西经";
if (lang< 0) {
text = "东经";
} else if (lang=== 0) {
text = "本初子午线";
}
text += lang===0?"":"" + lang+ "°";
//绘制经度
latLongLine.lang.push(viewerInstance[this.id].entities.add({
position: Cesium.Cartesian3.fromDegrees(lang,0),
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray([lang, -90, lang, 0, lang, 90]),//为了绕一圈地球中间加了一个赤道点
width: 1.0,
material: Cesium.Color.fromBytes(66, 147, 254, 255 * 0.8),//好看的颜色
} ,label: {//标注经度
text: text,
verticalOrigin:Cesium.VerticalOrigin.TOP,
font: '16px Helvetica',
fillColor: Cesium.Color.GOLD,
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
outlineWidth: 1,
outlineColor: Cesium.Color.BLACK,
pixelOffset: new Cesium.Cartesian3(0, -50, -2000)//像素为单位的位置偏移实际上笛卡尔3的z值无效,因为他只支持笛卡尔2,但。。。毕竟逼格高嘛。。
},
}));
}
//因为这里都是用折线实现,为看起来像个圆 所以要先拿到比较密的经度点
for (let lang= -180; lang<= 180; lang+= 5) {
langS.push(lang);
}
//每隔10读绘制一条纬度线和纬度标注
for (let lat= -80; lat<= 80; lat+= 10) {
let text = "北纬";
if (lat< 0) {
text = "南纬";
} else if (lat=== 0) {
text = "赤道";
}
text += "" + lat+ "°";
latLongLine.lat.push(viewerInstance[this.id].entities.add({
position: Cesium.Cartesian3.fromDegrees(0,lat),//这个主要是为了让文字可以显示到正确的位置
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray(longS.map(long=> {
return [long,lat].join(",")
}).join(",").split(",").map(item => Number(item))),//这一堆语法糖就是因为懒 得写for循环转换其实就是把经度和纬度拼为二维数组,然后在转换为字符串分割,然后在转换为一维数组,然后转数组,十八般武艺唯快不破
width: 1.0,
material: Cesium.Color.BLUE,
},
label: {//标注
text: text,
font: '16px Helvetica' ,
fillColor: Cesium.Color.GOLD,
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
outlineWidth: 1,
outlineColor: Cesium.Color.BLACK,
pixelOffset: new Cesium.Cartesian3(0, -5, -2000)
},
})
)
}
好了 ,基本思路就是这样,你想怎么看你就这么看,站在天狼星,你也看得到经纬线(吹牛逼)
cesium绘制网格_cesium 实现经纬线绘制和经纬度标注相关推荐
- 【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
文章目录 一.绘制网格 + 等高线 1.meshc 函数 2.代码示例 二.绘制平面 + 等高线 1.surfc 函数 2.代码示例 一.绘制网格 + 等高线 1.meshc 函数 meshc 函数参 ...
- cesium绘制网格_Cesium学习笔记-工具篇37-风场绘制
这两天重新接触到流场,于是研究下,在大牛们的轮子上也算实现了效果: 1二维 2三维 主要参考以下三篇文章: <WebGL风向图>给出制作风向图通常步骤: 1. 在屏幕上生成一系列随机粒子位 ...
- [Direct2D开发] 绘制网格
[Direct2D开发] 绘制网格 原文: [Direct2D开发] 绘制网格 转载请注明出处:http://www.cnblogs.com/Ray1024 一.引言 最近在使用Direct2D进行绘 ...
- Cesium解决方案 绘制网格 绘制经纬度栅格
遇到的客户需求 在Cesium的地图上绘制可随缩放变化的网格以及固定的经纬度栅格 需求1:绘制网格 附上代码 var GridImagery = new Cesium.GridImageryProvi ...
- cesium实现绘制网格效果
示例效果: 代码演示: //! 网格位置 // var modelMatrixWhereTo = Cesium.Transforms.eastNorthUpToFixedFrame( // Cesiu ...
- 【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )
文章目录 一.二维网格 1.线图 与 平面图 2.meshgrid 函数生成二维网格 二.绘制网格 1.mesh 函数绘制网格 2.代码示例 三.绘制平面 1.surf 函数绘制平面 2.代码示例 四 ...
- 基于 matplotlib 的抽象网格和能量曲线绘制程序
前言 最近在写文章需要绘制一些一维的能量曲线(energy profile)和抽象的二维和三维的网格来表示晶体用来描述自己的算法,于是自己在之前的脚本的基础上进行了整改写成了只提供接口的Python库 ...
- html canvas绘制网格,canvas(七)绘制网格和坐标轴
###1.绘制网格 var canvas = document.querySelector("canvas") var ctx = canvas.getContext(" ...
- Opengl绘制网格模型
一.概述 高级计算机三维建模的课后实习代码托管及重点部分备注.这是第一次实习,题目是读取.ply文件内容,并利用opengl绘制出网格.目前为止,老师布置的4次实习作业都比较简单,这里只是做简要记录, ...
最新文章
- 认识HTML5的WebSocket 认识HTML5的WebSocket
- Android中的各种Adapter
- Java动态代理代码案例:使用cglib实现对无接口的类进行动态代理
- 10.15 wget:命令行下载工具
- (转)C# WebApi 身份认证解决方案:Basic基础认证
- 谷歌街景新功能——帮警方抓毒贩
- Java基础篇(05):函数式编程概念和应用
- ASP.NET 自定义控件从入门到精通3补充
- JavaScript的this关键字的调用位置和绑定
- windows复制文件到 vmware centos虚拟机问题
- matlab设计一个简单图像直方图均衡的GUI程序
- nginx 反向代理机制解决前端跨域问题
- 微信小程序发送模板消息通知
- mac安装win7之后鼠标失灵_苹果电脑安装win7时键盘鼠标无响应3种解决方案
- html自我介绍5页模板,关于个人自我介绍模板6篇
- python程序设计基础与应用课后答案_智慧职教Python程序设计基础作业课后答案
- qtcpsocket断开_关于使用QTcpSocket的一些总结
- android q mix3,Android Q+5G 小米MIX3现场播放8K视频:画面流畅
- 企业自建私有云-openstack-介绍
- PHP分片上传文件到又拍云对象存储
热门文章
- android 回收站设计,【教程】Android系统建个回收站帮你找回误删文件
- 外盘期货正大国际:如何控制期货交易的风险
- 自动使用优化大师-2
- [结论] LibreOJ #520. 「LibreOJ β Round #3」绯色 IOI(开端)
- 【动画教程】真封神南极服务端2.52架设第三集
- Mandriva下载
- 树莓派配置局域网打印服务器(HP1018)
- C语言初学者复刻经典扫雷小游戏(图形界面,非黑白窗口)(含源码)
- 视频号直播的常见问题QA | 第1期
- dem数据下载后怎么使用?查看等高线、地形渲染、地形裁剪教程