[原创.数据可视化系列之二]使用cesium三维地图展示美国全球军事基地分布
基于浏览器的三维地图还算是一个比较高冷的东西,最主要的技术难点是如何在浏览器上 多快好省 的显示三维数据,很遗憾,还真的没有太好的的方案,只能说还有可行的方案。
很久之前用过skyline,使用CS居多,也可以在浏览器使用actviex插件显示;另外就是arcgis globe,我没看到在项目中用的。后来google有一个globe,算是差的比较远。
一直到有一天,看到nokia的地图,没错,就是那个做手机的nokia,他们做的那个一个here.com 的地图,能够看三维地图,使用webgl在浏览器渲染,对当时的我来说,简直是惊为天人,流畅,效果好,百度也在用,对,就是百度,我是搞不明白,这么大一个公司,每年这么多研发费用,不能自己搞一个吗,去用here.com的东西?难道都去搞外卖了?我就hehe了;这是题外的牢骚,回归正题把代码拔下来看一下,代码加密了8000多行的代码,这下就懵逼了;flex的也有了,无疾而终;另外还有个webglearth,效果也不太好,现在直接修改成另一个引擎。
接下来才是重点,几年前在git上看到一个项目 cesium.一个开源的三维地图引擎,作者曾经写过一本书,c#的三维地球的。后来改JS了,做出这个开源项目,一直一直发布,现在好几年了。
这个引擎是我目前看到的效果最好、功能最完整的开源的三维地图引擎了。基本上你只要1句话,就可以显示一个三维地图了。
下面,我们把美帝国主义在全球和国内的军事基地在cesium上展示,涉及到基础底图、增加要素、和要素交互的功能:
1:初始化cesium对象:
//初始化地图
this.viewer = new Cesium.Viewer('map', {
scene3DOnly: true,
baseLayerPicker: false,
imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
url: "http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles",
layer: "tdtBasicLayer",
style: "default",
format: "image/jpeg",
tileMatrixSetID: "GoogleMapsCompatible",
show: true
}), //初始背景
animation: false,
fullscreenButton: false,
geocoder: false,
homeButton: false,
infoBox: true,
sceneModePicker: false,
selectionIndicator: false,
timeline: false,
navigationHelpButton: false,
navigationInstructionsInitiallyVisible: false
}
);
2:在地图上增加要素:
$.getJSON(options.url, function(result) {
$(result).each(function(i, val) {
that.viewer.entities.add(
{
parent:layer,
name: "jd"+i,
position : Cesium.Cartesian3.fromDegrees(val.lat, val.lng),
point : {
pixelSize : 10,
color : Cesium.Color.RED
},
data:val
});
});
});
3:效果如下:

老规矩:源代码:http://dataxiu.com/xius/www/admin/js/map3d.js
另外,你可以关注 arcgis 最新的webgl的三维地图;worldwind的地图webgl版本。
[原创.数据可视化系列之二]使用cesium三维地图展示美国全球军事基地分布的更多相关文章
- [原创.数据可视化系列之六]使用openlyaers进行公网地图剪切
进行地图开发的过程中,我一般使用天地图或者微软的地图作为地图,因为这两种地图的经纬度偏差最小,基本可以满足用户需求,比如: 不用说,都是全部地图,这也是最常用的一种方法. 但是用户说,我只看大连的地图 ...
- [原创.数据可视化系列之五]韩国"萨德"系统防御图
自从7月8日美国和韩国共同宣布将在韩国部署萨德反导系统后,韩国国内对此事的巨大争议以及本地区一些国家的强烈不满情绪在持续发酵.“萨德”(THAAD)全称“末段高空区域防御系统”,是美国导弹防御局和美国 ...
- [原创.数据可视化系列之八]使用等d3进行灰度图转伪彩色
对灰度图进行彩色化是数据可视化中常见的需求,使用d3在客户端比较容易实现,本文使用d3生成图片,并显示: 代码如下: 代码中首先下载数据文件,然后设定d3的色带信息,生成一个空白的canvas元素,并 ...
- [原创.数据可视化系列之一]使用openlayers 3 显示聚合数据
在地图上显示点数据是最常用的地图展示功能之一,但是如果很多点在地图上显示,或造成密密麻麻的一片,无法正常看清楚,这个时候,一般有两种解决方案,一种是根据数据重要程度进行标注,重要的显示大一些,不重要的 ...
- [原创.数据可视化系列之十二]使用 nodejs通过async await建立同步数据抓取
做数据分析和可视化工作,最重要的一点就是数据抓取工作,之前使用Java和python都做过简单的数据抓取,感觉用的很不顺手. 后来用nodejs发现非常不错,通过js就可以进行数据抓取工作,类似jqu ...
- [原创.数据可视化系列之三]使用Ol3加载大量点数据
不管是百度地图还是高德地图,都很难得见到在地图上加载大量点要素,比如同屏1000的,因为这样客户端性能会很低,尤其是IE系列的浏览器,简直是卡的要死.但有的时候,还真的需要,比如,我要加载全球的AQI ...
- [原创.数据可视化系列之十三]idw反距离权重插值算法的javascript代码实现
图形渲染中,idw反距离权重插值算法是一个应用非常广泛的方法,但是js实现的比较少,目前实现一个: //idw算法 //输入[[x:0,y:0,v:0],[x:0,y:0,v:0],[x:0,y:0, ...
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现
原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系 ...
- HTML5大数据可视化效果(二)可交互地铁线路图
前言 最近特别忙,承蒙大伙关照,3D机房的项目一个接着一个,领了一帮小弟,搞搞传帮带,乌飞兔走,转眼已经菊黄蟹肥……有个小弟很不错,勤奋好学,很快就把API都摸透了,自己折腾着做了个HTML5的魔都的 ...
随机推荐
- 标签中id和name的作用和区别
id:作为标签的唯一标识.name:作为可与服务器交互数据的HTML元素的服务器端的标示.
- source 源码下载
http://blog.csdn.net/zlgydx/article/details/50781258 经常需要查看某些第三方的源码,一直在用的一个网站,功能比较简介.好用. http://grep ...
- The novaclient Python API
The novaclient Python API Usage First create a client instance with your credentials: >>> f ...
- EA中的模板管理
EA在导出文档的时候可以选择各种模板. 使用系统提供的模板导出的文档会稍显繁杂.这时候就需要我们自定义模板. 1. 在导出文档的dialog, 在Template一项中选择 New Template. ...
- C#检测网卡和网络统计信息
using System; using System.Collections.Generic; using System.Net.NetworkInformation; public class My ...
- ActivityGroup、TabHost之子页面不刷新——getLocalActivityManager() 以及intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法
TabHost继承自ActivityGroup,以下不再单独列出. ActivityGroup在第一次创建的时候会完整的执行子Activity或子view的生命周期,但在从其他子activity或子v ...
- 重新介绍 JavaScript
简介 为什么需要这个重新介绍呢?因为 JavaScript 已经完全可以被称为世界上被误解最严重的编程语言了.虽然它被当做玩具来用,但是藏在让人迷惑的简单表象下面的,是强大的语言特性.从2005年,一 ...
- JS判断input按了回车键
参考代码如下: <input type="textbox" id="textbox1" onkeypress="CheckInfo" ...
- 一个最小mybatis
项目结构 package hello; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis ...
- 笔试常考的Linux命令大全
1. wc -l 统计一个文件的行数.l-line.-c是字节数,-m是字符数,mc不能同时使用.-L打印最长行的长度. 2. 查看系统进程的命令:ps,查看CPU占用命令:top.df:查看磁盘使用 ...