“我不满意,我不想等待,我也不再推诿,我要站出来做一点什么。我要做的事,就在此时,就在此刻,就在此地,就在此生”。自离职央视后,沉寂许久的知名记者、主持人柴静昨日携个人视频新作 《穹顶之下》宣告归来,并在短时间内引起广泛关注。生活在这个地球上,空气质量的好坏决定这我们的健康,每个人都希望能够呼吸新鲜空气,都希望抬起头看到的是蓝天和白云,而不是灰蒙蒙的雾霾。说到雾霾,我们用TWaver GIS实现了一个全国雾霾图的示例供大家参考。
首先要创建地图,如果熟悉TWaver GIS的人,下面的代码应该不难,如果第一次接触TWaver GIS,可以参考html5 gis的官方文档。贴出地图的代码:
network = new twaver.vector.Network(); map = new twaver.gis.Map(document.getElementById("container"),"test"); map.setSize({width:800,height:1200}); map.setEnableDoubleZoom(false); map.setBackgroundColor(GISConsts.GOOGLE_COLOR); map.setProjectionType(GISConsts.PROJECTION_MERCATOR); map.addLayer("OSM",GISConsts.EXECUTOR_TYPE_OSM); map.setZoomLevel(4); map.setCenter(new twaver.gis.geometry.GeoCoordinate(40,100)); network.adjustBounds({x:0,y:0,width:900,height:800}); var box = network.getElementBox(); adapter = new twaver.gis.Adapter(); adapter.bindNetworkAndMap(network,map); adapter.enableCombineInteraction(); var borderPane = new twaver.controls.BorderPane(map); appendChild(borderPane.getView(),document.getElementById("container"),0,0,0,0); var toolbar = new twaver.gis.gadget.MapToolbar("",map); map.installGadget(toolbar.getView()); var navigator = new twaver.gis.gadget.Navigator("cn",map); map.installGadget(navigator,{x:20,y:50});
接下来是在地图上画出每个省省会的的雾霾指数,可以用网元来表示, 先注册一下网元的样式,用我们的矢量描述来表示:
twaver.Util.registerImage('exponent', {
w: 80,
h: 30,
origin: { x: 0, y: 0 },
line: {
width: 0,
color: 'red'
},
v: [
{
shape: 'rect',
rect: [ 0, 0, 80, 20],
fill: 'white',
r: 2
},
{
shape: 'rect',
rect: [ 50, 0, 30, 20],
fill: '<%= data.getClient("color") %>',
r:2
},
{
shape: 'text',
text: '<%= data.getClient("name") %>',
textAlign: 'left',
textBaseline: 'top',
x: 5,
y: 5
},
{
shape: 'text',
text: '<%= data.getClient("exponent") %>',
textAlign: 'left',
textBaseline: 'top',
x: 55,
y: 5
},
{
shape: 'circle',
cx: 40,
cy: 22,
r: 2,
fill: 'red'
}
]
});
最后我们创建网元,网元的图片就是上边注册的图片,并且用不同的颜色表示雾霾指数的高低:
function createTopo() {
var box = network.getElementBox();
var geoDatas = [
{latitude: 39.91667, longitude: 116.41667, name:"北京"}, //北京
{latitude: 31.14, longitude:121.29, name:"上海"},//上海
{latitude: 39.13333, longitude: 117.20000, name:"天津"},//天津
{latitude: 22.20000, longitude:114.10000, name:"香港"}, //香港
{latitude: 23.16667, longitude: 113.23333, name:"广州"}, //广州
{latitude: 30.26667, longitude:120.20000, name:"杭州"},//杭州
{latitude: 29.56667, longitude: 106.45000, name:"重庆"},//重庆
{latitude: 26.08333, longitude:119.30000, name:"福州"},//福州
{latitude: 36.03333, longitude: 103.73333, name:"兰州"},//兰州
{latitude: 26.56667, longitude:106.71667, name:"贵阳"},//贵阳
{latitude: 28.21667, longitude: 113.00000, name:"长沙"},//长沙
{latitude: 32.05000, longitude:118.78333, name:"南京"},//南京
{latitude: 28.68333, longitude: 115.90000, name:"南昌"},//南昌
{latitude: 41.80000, longitude:123.38333, name:"沈阳"},//沈阳
{latitude: 37.86667, longitude: 112.53333, name:"太原"},//太原
{latitude: 30.66667, longitude:104.06667, name:"成都"},//成都
{latitude: 29.60000, longitude: 91.00000, name:"拉萨"},//拉萨
{latitude: 43.76667, longitude:87.68333, name:"乌鲁木齐"},//乌鲁木齐
{latitude: 25.05000, longitude: 102.73333, name:"昆明"},//昆明
{latitude: 34.26667, longitude:108.95000, name:"西安"},//西安
{latitude: 36.56667, longitude: 101.75000, name:"西宁"},//西宁
{latitude: 38.46667, longitude:106.26667, name:"银川"},//银川
{latitude: 45.75000, longitude: 126.63333, name:"哈尔滨"},//哈尔滨
{latitude: 43.88333, longitude:125.35000, name:"长春"},//长春
{latitude: 30.51667, longitude: 114.31667, name:"武汉"},//武汉
{latitude: 34.76667, longitude:113.65000, name:"郑州"},//郑州
{latitude: 38.03333, longitude: 114.48333, name:"石家庄"},//石家庄
{latitude: 20.01667, longitude:110.35000, name:"海口"},//海口
{latitude: 22.20000, longitude: 113.50000, name:"澳门"},//澳门
{latitude: 40.48, longitude: 111.41, name:"呼和浩特"},//呼和浩特
{latitude: 22.48, longitude: 108.19, name:"南宁"},//南宁
{latitude: 36.40, longitude: 117.00, name:"济南"},//济南
{latitude: 31.52, longitude: 117.17, name:"合肥"},//合肥
{latitude: 25.03 , longitude: 121.30, name:"台北"}//台北
];
for(var i = 0; i < geoDatas.length; i++) {
var node = new twaver.Node();
node.setClient(GISSettings.GEOCOORDINATE,new twaver.gis.geometry.GeoCoordinate(geoDatas[i].latitude,geoDatas[i].longitude));
node.setImage("exponent");
node.setClient("name",geoDatas[i].name);
node.setClient("exponent",Math.floor(Math.random() * 200) + 20);
if(node.getClient("exponent") < 50) {
node.setClient("color", "green");
}else if(node.getClient("exponent") >= 50 && node.getClient("exponent") < 100) {
node.setClient("color", "#D6C621");
}else if(node.getClient("exponent") >= 100 && node.getClient("exponent") < 150) {
node.setClient("color", "#F5582E");
} else if(node.getClient("exponent") >= 150 && node.getClient("exponent") <= 220) {
node.setClient("color", "red");
}
box.add(node);
}
}
这样一个简单的雾霾地图就实现了,上边的数据是模拟数据,如果想反映真实数据,可以直接调用中国天气的实时数据,网址:http://openweather.weather.com.cn/Home/Package/index.html
这样一个简单的雾霾地图就实现了,上边的数据是模拟数据,如果想反映真实数据,可以直接调用中国天气的实时数据,网址:http://openweather.weather.com.cn/Home/Package/index.html
相关推荐
本文主要讨论的是在Flex环境下的TWaver组件——TWaver Flex。 在配置TWaver Flex的开发环境时,首先需要创建一个MXML应用项目,如"HelloTWaver",并将TWaver.swc库文件放入项目的libs目录。Flex Builder 3会自动将...
”这说明提供的示例不仅包含核心的twaver.js库,还有与之配合的HTML文件“alarm.html”。Jetty是一个轻量级的Java Web服务器和Servlet容器,能够方便地运行Web应用程序。这意味着用户可以直接在Jetty环境下运行这个...
### TWaver图形界面之道——关键知识点解析 #### 一、TWaver概述 TWaver是一款专为图形用户界面(GUI)开发而设计的组件产品。它不仅适用于电信行业的网络管理系统(NMS),同样适用于非电信领域的各类图形化界面...
描述中提到的“TWaver HTML5 3D 制作的demo提供一个3d图形展示的基本代码”意味着这个压缩包内包含了一个使用TWaver库构建的3D图形演示程序,其中包含了实现基本3D效果的源代码。开发者可以通过学习和分析这个demo,...
【描述】该开发包的亮点在于其强大的可视化能力,通过TWaver,开发者可以轻松地构建出各种炫酷的图形,如流程图、网络拓扑图、时间线、地图等,为应用程序增添专业且美观的视觉效果。TWaver的API设计友好,使得即使...
3. demo.sh:这是Linux或Mac OS下的Shell脚本,同样用于启动Demo程序,展示了TWaver跨平台的能力。 4. License.txt:文件包含了TWaver的许可协议,详细规定了软件的使用、分发和修改权限。 5. README.txt:通常包含...
Twaver是一个强大的数据可视化和网络建模工具,广泛应用于网络拓扑、流程图、组织结构等场景。5.9.0是该库的一个特定版本,可能包含了新功能、性能优化或错误修复。 描述简单明了,"twaver-html5-5.9.0-api"直接...
《TWaver HTML5 开发指南代码》是一份专为开发者准备的参考资料,它主要聚焦于如何利用TWaver库在HTML5环境下构建拓扑工具和机房展示应用。TWaver是一个强大的可视化框架,其核心特性是支持复杂的图形和网络图表的...
Twaver学习案例的例子
本次报告主要针对Twaver Java版本(Twaver Java)在不同节点配置及连接条件下的性能表现进行了详细评估。 #### 测试背景与目的 随着网络技术的不断发展以及数据量的日益增长,对于能够高效管理、处理大规模数据的...
TWaver的图形组件库中提供了拓扑组件、地图组件、设备图组件,以及表格、树图、属性表、图表等丰富的通用图形界面组件,为电信运营支撑系统(OSS)的开发提供“一站式”的组件产品和解决方案,是快速设计、开发和...
- **界面交互**也是TWaver的重要组成部分之一,它提供了丰富的API来处理用户的输入事件,并且可以根据用户的操作实时更新视图。 ### 产品家族与技术栈 - TWaver支持多种技术和平台,包括**Java**、**Flex**、**...
TWaver是一个强大的图形库,支持多种图表类型,如折线图、柱状图、饼图、散点图、地图等。它还支持数据绑定,使得数据驱动的可视化变得简单。此外,TWaver具备良好的可扩展性和自定义能力,允许开发者根据需求调整和...
3. **GIS集成**:对于地理信息系统集成,TWAVER 支持地图数据的导入和处理,可以将地理位置信息与拓扑图相结合,实现地图上的对象定位和空间分析。这在地理分布广泛的网络服务中尤为有用,比如基站位置、线路路径等...
【标题】"Twaver Web实例源码"是一个关于使用Twaver与ExtJS结合的Web应用程序开发的学习资源。Twaver是一款强大的图形化建模和可视化工具,常用于数据可视化、网络拓扑图、流程图等场景。ExtJS则是一个流行的...
**标题:“twaver-java-3.7”** **描述:“twaver-java-3.7 文档”** **标签:“twaver java 3.7”** 本文将深入探讨Twaver Java 3.7版本的相关知识,这是一个强大的数据可视化库,特别适用于Java开发人员。...
TWaver是用于创建交互式图表、网络图、流程图、地图等复杂可视化应用的JavaScript库。通过官方文档,我们可以深入理解其功能、用法和性能。 【描述】"达芬奇的密码"这部分可能是对TWaver能力的一种比喻,暗示TWaver...
2. **丰富的图表类型**:TWaver 4.1支持各种图表,如折线图、柱状图、饼图、散点图、网络图、地图等,适合展示复杂的数据关系。`demo.jar`包含了这些图表类型的演示。 3. **交互性与自定义**:TWaver允许用户通过...
TWaver-flex的库TWaver.swc