GIS可视化——属性图

一、简介

SuperMap iClient for JavaScript 提供了UTFGrid图层(属性图),用于客户端属性信息的快速交互。 UTFGrid图层从UTFGrid切片数据源读取数据,其本质是基于JSON的ASCII 码’字符画’与属性数据的结合。 UTFGrid图层不能被可视化渲染,在地图中使用这个图层, 必须同时添加 SuperMap.Control.UTFGrid 控件类来控制触发事件类型。

  • 原理:通过请求瓦片数据(非图片),将属性信息保存到客服端UTFGrid图层中,提高客户端属性信息的交互速度。
  • 特点:根据屏幕像素位置在客户端快速获取图层的属性信息。
  • 应用场景: UTFGrid图层常用于客户端需要快速响应属性信息的场景。 当需要实时查询地图上某些地物属性并且地物数量很大时,采用与服务器交互获取属性信息的方式需要频繁的发起请求, 时间消耗较大, 而通过UTFGrid图层,可以快速的获取地物属性信息,极大的提高用户体验。 例如:实现鼠标悬停或鼠标单击某一地物时,快速获取该地物某些属性信息。

二、使用

下面展示属性图使用方式:

1、创建UTFGrid图层

首先创建一个属性图对象。由于属性图从UTFGrid切片数据源读取数据, 所以在创建属性图对象时可以根据需要指定utfTileSize 、pixcell、utfgridResolution等图层属性。

        var utfgrid = new SuperMap.Layer.UTFGrid("UTFGridLayer", url,
                {
                    layerName: "[email protected]",
                    utfTileSize: 256,
                    pixcell: 8,
                    isUseCache: true
                },
                {
                    utfgridResolution: 8
                }
        );
        

说明:pixcell与utfgridResolution两个属性有对应关系,在使用的时候要注意应用场景:

1.其中pixcell为发送给服务端请求utfgrid瓦片的精度,数值越小,精度越高,相应的瓦片大小也就越大;

2.utfgridResolution为客户端解析瓦片使用的精度,应该与pixcell的值相等,否则会产生位置与属性对应不上的问题;

3.通常如果UTFGrid图层为面图层,对应的数据量会比较大,为了不影响页面的正常浏览,可以将这两个属性设的大一些;

4.isUseCache设置是否使用缓存,使用缓存能够提高性能。

2、添加到地图

然后将此图层添加到map里面。

        //向map中添加图层
        map.addLayers([utfgrid]);
        

3、创建UTFGrid控件

创建UTFGrid控件,通过layers属性与先前创建的属性图utfgrid关联,指定触发事件类型为move。

         control = new SuperMap.Control.UTFGrid({
             layers: [utfgrid],
             callback: callback,
             handlerMode: "move"
         });
        

4、添加控件到地图

将此控件添加到map里面。

        //向map中添加控件
        map.addControl(control);
        

5、处理事件

当鼠标事件触发的位置恰好在UTFGrid图层上有对应数据的时候调用回调函数callback。

回调函数callback的参数 infoLookup 是一个返回对象,该对象由一个或多个键值对组成, 其中键值为图层索引,值为鼠标位置对应该图层的数据(属性信息),数据格式为JSON类型。 通过 infoLookup 对象,无需与服务器交互就可以快速获取鼠标位置对应地物的属性信息。

         var callback = function (infoLookup, loc, pixel) {
               closeInfoWin();
               if (infoLookup) {
                   var info;
                   for (var idx in infoLookup) {
                       info = infoLookup[idx];
                       if (info && info.data) {
                            //弹出框内容,info.data.NAME 就是当前鼠标位置对应要素的NAME属性字段值
                           var dom = "<div style=‘font-size: 12px; color: #000000;border: 0.5px solid #000000‘>"
                                + info.data.NAME + "< /div >";
                           //设置x与y的像素偏移量,不影响地图浏览;
                           var xOff = (1 / map.getScale()) * 0.001;
                           var yOff = -(1 / map.getScale()) * 0.005;
                           var pos = new SuperMap.LonLat(loc.lon+xOff, loc.lat+yOff);
                           //新建一个弹出框对象
                           infowin = new SuperMap.Popup("chicken",
                                   pos,
                                   new SuperMap.Size(100, 20),
                                   dom,
                                   true, null);
                           infowin.autoSize=true;
                           map.addPopup(infowin);
                       }
                   }
               }
         };

         //关闭弹出窗
         function closeInfoWin() {
             if (infowin) {
                 try {
                     map.removePopup(infowin)
                 }
                 catch (e) {
                 }
             }
         }
        

这样我们就可以获得以下下效果:

当鼠标移动到中国的某个省份上时,弹出框显示该省份的名称。

完整范例请见 http://www.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/utfGridLayer.html

6、示例:UTFGrid国旗版

产品示例程序中提供了另一个属性专题图范例:UTFGrid国旗版。 该示例展示通过UTFGrid图层快速的响应用户的鼠标移动事件,显示出当前鼠标对应国家的国旗和名称。

完整范例请见 http://www.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/utfGridLayerFlags.html

时间: 2024-12-15 19:49:44

GIS可视化——属性图的相关文章

Android自定义View——多边形网格属性图

多边形网格属性图 事先说明: 该View涉及到Path类的运用,如果对Path类不熟悉的,可以看http://blog.sina.com.cn/s/blog_4d9c3fec0102vyhs.html,这篇文章通熟易懂 该View还涉及到数学的Cos和Sin式子,也就是一些圆的基本知识,如果不了解的话请补补高中知识吧 效果图:     步骤一:分析变量信息 //-------------我们必须给的模拟数据------------- //n边形 private int n = 5; //文字 p

Spark GraphX 属性图操作

package Spark_GraphX import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object 属性图 { def main(args: Array[String]): Unit = { val conf=new SparkConf().setAppName("SimpleGraphX").setM

Neo4j_01属性图

参考自作者:悦光阴 http://www.cnblogs.com/ljhdo/ 在深入学习图形数据库之前,首先理解属性图的基本概念.一个属性图是由顶点(Vertex),边(Edge),标签(Label),关系类型和属性(Property)组成的有向图.顶点也称作节点(Node),边也称作关系(Relationship):在图形中,节点和关系是最重要的实体,所有的节点是独立存在的,为节点设置标签,那么拥有相同标签的节点属于一个分组,一个集合:关系通过关系类型来分组,类型相同的关系属于同一个集合.关

宜宾市放心舒心消费平台-工商GIS一张图

宜宾市工商局以现实地图为基础,收录放心舒心商家的地理位置.交通.通信等信息,每个商家附主体信息公示.商品服务介绍.经营承诺.信用信息等:开通投诉及处理窗口功能,政府部门.消费者.商家实时互通互动,发生投诉及时处理,延时预警,鼓励商家先期主动与消费者和解,超时政府机关介入处理,同时开通消费者评星.评价等功能,对投诉处理情况及商家受评信息全面公示. 宜宾市放心舒心消费平台 采用天地图为GIS基础底图,开发了放心舒心商家GIS"一张图". 该项目由成都市瀚涛天图科技有限公司中标并研发. 联系

GIS可视化——热点格网图

一.简介 原理:按照格网大小将区域进行划分,由一个矩形格网替代当前范围内的数据,由格网中心数字代替格网的权重(可以为格网中数据的数量,数据某权重的平均值.最大值.最小值等), 由格网之间颜色的不同表达渐变性 特点:结合了热点图和聚散的特性,具有热点图的对权重的层次渐变直观性以及聚散解决数据量过大的优势. 应用场景:热点格网图将大量数据以格网显示,减少了浏览器的负荷,在格网扩展开后又能保证数据的完整性,并且具有热点图的部分颜色渐变趋势带来的视觉直观性, 该功能主要用于渲染大数据量点数据,可以应用于

南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(二)鹰眼模块

讲解GIS功能模块实现之前,先大概说一下flexviewer的核心配置文件config.xml,系统额GIS功能widget菜单布局.系统的样式.地图资源等等都是在这里配置的,这里对flexviewer不熟悉的朋友,要先去flexviewer官网了解或者网上的其他资源了解才行; 鹰眼模块在config.xml文件的配置如下: <widget right="0" bottom="0" config="widgets/OverviewMap/Overvi

南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(一)GIS一张图的系统开发环境以及flexviewer框架

系统的GIS功能实现是基于arcgis api for flex,首先附上系统的主界面图,接下来的是对主界面的模块功能详细讲解: 一.GIS环境软件安装 (1)arcgis desktop的安装,要是不想对地图数据进行样式配置或者数据加工的话,这步可以跳过不用安装,详细的安装步骤见这里: (2)arcgis server的安装,这个是必须的,用来发布webgis的地图服务,比如地图基础服务,路径分析的网络服务,地理编码服务等等,详细的安装步骤见这里: (3)arcsde直连创建地理企业数据库,为

南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(十三)台风模块

config.xml文件的配置如下: <widget label="台风" icon="assets/images/typhoon.png" config="" url="widgets/ActualWeather/TyphoonWarningWidget.swf"/> 源代码目录如下: 界面效果: 大概的思路如下:从后台数据库获取台风的信息列表,展示在界面的表格里面:点击某条台风选项时候,会动态的在地图上展示台风

GIS可视化——热点图

一.简介 SuperMap iClient for JavaScript提供了热点图(HeatMapLayer),用于渲染数据衰减趋势.颜色渐变的效果. 原理:在客户端直接渲染的栅格图,热点图的渲染需要三大要素:1.热点数据,热点数据需要点数据,每一个热点数据需要有地理位置以及权重值 (能够明显的表现某位置某事件发生频率或事物分布密度等,如可以为温度的高低.人口密集度等等):2.热点衰减渐变填充色集合, 用于渲染每一个热点从中心向外衰减时的渐变色:3.热点半径,也就是衰减半径.每一个热点需要从中