一、简介

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: "China_Province_R@China400",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

转载于:https://www.cnblogs.com/zhuimengdeyuanyuan/p/4585347.html

GIS可视化——属性图相关推荐

  1. arcgis android gif,一种基于动态地图符号的移动GIS可视化方法与流程

    本发明具体涉及一种基于动态地图符号的移动GIS可视化方法动态地图符号的技术领域 背景技术: 随着移动设备的高度集成化和处理器的快速发展,终端设备的计算和处理能力不断增强,移动GIS的应用领域越来越广泛 ...

  2. BIM+GIS可视化工程管理平台,施工全过程动态监管!

    中科图新BIM+GIS可视化工程管理平台,将工程建设场景.建设状态.构件信息等真实现场还原,对构件属性.资料.照片.进度进行管理,对工程实时信息.质量及安全做到全线上展示,实现工程数据一张图.工程进度 ...

  3. 基于OpenLayer完成GIS一张图的开发

    一.OpenLayer简介 OpenLayers 是一个专门为WebGIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问. 使用OpenLayer API Open ...

  4. BIM+GIS可视化项目管理方案

    ​ 随着交通行业高速发展,在新时代"智慧交通"的背景下,工程项目管理正面临着数字化.智能化.可视化的发展挑战.BIM.GIS.大数据.物联网.云计算.人工智能.区块链等新技术浪潮正 ...

  5. 自然语言处理(NLP)之依存句法分析的可视化及图分析

    依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析. 我们使用的NLP工 ...

  6. pyltp依存句法分析_NLP(十二)依存句法分析的可视化及图分析

    摘要: ,'通信','领域','做出','的','贡献','.']ATT(2018,年)ATT(年,日)ATT(7,月)ATT(月,日)ATT(26,日)ADV(日,举行)WP(,,日)ATT(华为, ...

  7. Unity自定义UI组件(十一) 雷达图、属性图

    前言 借用梦想世界宠物属性图 想必大家都在游戏中见过属性图用于展示多种属性的数值,可以较为直观的对比某种属性的缺陷或者是哪种属性有优势.在三维可视化领域也会遇到类似的属性对比,用属性图来展示最为合适. ...

  8. 智能数据可视化-雷达图的使用方法

    在进行数据报表综合评价分析时,往往涉及很多指标,需要将指标与参照值一一比较,往往会顾此失彼,难以得出一个综合的分析评价.这时便借助数据可视化图-雷达图. 雷达图是专门用来进行多指标体系比较分析的专业图 ...

  9. 知识图谱:RDF 或LPG(属性图),您应该选择哪一个?

    Graph正在成为一种广泛使用的数据表示方法,因为它们提供了灵活性.因此,用于图形数据管理的数字技术越来越受欢迎.到 2023 年,图形技术将促进全球30%的组织更快地实现数据情境化. 最流行的图数据 ...

最新文章

  1. SAP PM入门系列23 - IL07 Functional Location List (Multilevel)
  2. 计算氦原子的基态能级
  3. Java实现栅格数据格式文件读取及加法操作
  4. python怎么连接MongoDB数据库
  5. android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)
  6. centos7 mysql
  7. S3C2440系统中断
  8. gstat | 空间插值(四)——克里金插值之协同克里金和交叉验证
  9. Data Structure_数组_栈_队列_链表_霍夫曼
  10. Windows7和Ubuntu9.10完美硬盘安装(2)
  11. HeadFIrst Ruby 第二章总结 methods and classes
  12. 开源一个cmpp协议转http协议项目
  13. 推荐姊妹篇:搜索中的深度匹配模型
  14. CSS-线性渐变无畸变-环形普通进度条-环形能量块进度条-局部环形普通进度条
  15. day18 - 正则表达式
  16. 确定不看看我的扫雷吗(C语言)
  17. java电子签名_java实现pdf文件电子签名
  18. 宅男也可变形男-我是如何在11个月零27天减掉80斤的
  19. Codeforces 1155F Delivery Oligopoly dp(看题解)
  20. linux java性能监控工具_常用Linux 性能监测工具

热门文章

  1. PPT|工业互联网关键技术专利态势
  2. 量子计算技术发展迅猛,商业潜力初现!如何把握量子计算时代的新机遇?
  3. 专家:智能芯片国际竞争愈发激烈,应尽快制定国家标准
  4. DeepMind提出「心智神经网络ToMnet」,训练机器的「理解」能力
  5. CES现场低调的主线,近在咫尺的5G商业化 | CES2018技术趋势
  6. 乔布斯曾带头反对 iPhone 第三方 App!由苹果反垄断案披露的那些往事
  7. 太扎心!人艰不拆!16 个程序员专属笑话讲给你听
  8. 腾讯云智能制造首次披露三大战略布局,发布“511”生态伙伴计划
  9. 让nginx支持php和path_info(新版本)
  10. Homebrew 1.9发布,将支持Linux与Windows 10