在地图上点击要素查看要素信息,也就是identify功能


  • script部分
         // 通过枚举索引获取枚举名称
function getEnumTextByIdx(enumObj, idx) {
for (var item in enumObj) {
var itemValue = enumObj[item];
if (itemValue == idx) {
return item;
}
}
} // 通过fid获取要素的字段属性值
function getAttrValueByFid(featureClassInfo, fid) {
// 连接信息
var connectionInfo = __g.new_ConnectionInfo;
//从featureClassInfo获取数据源的连接字符串,然后用此连接字符串进行连接
connectionInfo.fromConnectionString(featureClassInfo.dataSourceConnectionString);
// 数据源
var dataSource = __g.dataSourceFactory.openDataSource(connectionInfo);
// 数据集
var dataSet = dataSource.openFeatureDataset(featureClassInfo.dataSetName);
// 要素类
var featureClass = dataSet.openFeatureClass(featureClassInfo.featureClassName);
// 返回的字段属性集合
var attrValues = [];
// 通过fid获取行
var rowBuffer = featureClass.getRow(fid);
// 遍历字段
var fieldinfos = featureClass.getFields();
for (var i = 0; i < fieldinfos.count; i++) {
var fieldinfo = fieldinfos.get(i);
if (null == fieldinfo)
continue;
// 字段各种属性,字段值
var fieldName = fieldinfo.name;
var value = rowBuffer.getValue(i); var fieldValue = {};
fieldValue.name = fieldName;
fieldValue.alias = fieldinfo.alias;
// 字段类型是个枚举,分别获取枚举索引和值名称
fieldValue.typeIdx = fieldinfo.fieldType;
fieldValue.type = getEnumTextByIdx(gviFieldType, fieldinfo.fieldType);
fieldValue.value = value; attrValues.push(fieldValue);
} // 释放对象
rowBuffer.releaseObject();
featureClass.releaseObject();
dataSet.releaseObject();
dataSource.releaseObject(); return attrValues;
} //鼠标选择事件
function onMouseClickSelect(pickResult, intersectPoint, mask, eventSender) {
// 点击地图的点
if (intersectPoint) {
// 点坐标
var x = intersectPoint.x;
var y = intersectPoint.y;
var z = intersectPoint.z; alert("x:" + x + " y:" + y + " z:" + z);
} // 选中的对象
if (pickResult) {
// 对象类型是FeatureLayer(矢量图层),也就是模型,因为模型都是通过矢量图层加载的
if (pickResult.type == gviObjectType.gviObjectFeatureLayer) {
// 唯一id
var fid = pickResult.featureId;
// 图层
var featureLayer = pickResult.featureLayer;
// 图层名
var featureLayerName = featureLayer.name;
// featureClass信息(不是真正的FeatureClass对象)
var featureClassInfo = featureLayer.featureClassInfo;
// featureClass名称
var featureClassname = featureClassInfo.featureClassName; // 点击要素的字段的属性(字段名,别名,类型。。。)以及字段值
// PS:获取字段属性和值需要连接数据源,不是必须的话就不要获取了
var attrValues = getAttrValueByFid(featureClassInfo, fid); var msg = ""; //遍历字段
for (var i = 0; i < attrValues.length; i++) {
var attrValue = attrValues[i]; //字段名
var fieldName = attrValue.name;
//字段别名
var alias = attrValue.alias;
// 字段类型枚举索引
var typeIdx = attrValue.typeIdx;
//字段类型枚举名称
var type = attrValue.type;
//字段值
var value = attrValue.value; msg += "字段名:" + fieldName + ";" + "字段别名:" + alias + ";" + "字段类型枚举索引:" + typeIdx + ";" + "字段类型枚举名称:" + type + ";" + "字段值:" + value + "\n";
} alert(msg);
}
}
} $(function ($) {
// 初始化三维控件
initAxControl();
//cep文件路径,本地路径也行
var cepPath = "http://192.168.15.53:32555/default.cep";
//打开cep
__g.project.open(cepPath, false, ""); // 鼠标拾取模式(此模式下可进行鼠标拾取操作)
__g.interactMode = gviInteractMode.gviInteractSelect; //mouseSelectObjectMask影响点击什么类型对象会触发onmouseclickselect事件 // 鼠标拾取的时候需要过滤的对象类型:地形
//__g.mouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectTerrain;
// 鼠标拾取的时候需要过滤的对象类型:矢量图层
//__g.mouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectFeatureLayer;
// 鼠标拾取的时候需要过滤的对象类型:全部
__g.mouseSelectObjectMask = gviMouseSelectObjectMask.gviSelectAll; //绑定鼠标选择事件
__g.onmouseclickselect = onMouseClickSelect;
});

其中mouseSelectObjectMask控制点击什么类型对象会触发onmouseclickselect事件,值为gviSelectTerrain就是点击地形才触发onmouseclickselect,gviSelectFeatureLayer是点击矢量图层加载的要素才触发,gviSelectAll就是所有类型都触发

以上代码下载

链接:http://pan.baidu.com/s/1miRLHjU 密码:w2gp


全系列链接:

伟景行 citymaker 从入门到精通系列

伟景行 citymaker 从入门到精通(3)——点击地图获取坐标,点击模型获取模型信息和属性信息的更多相关文章

  1. 伟景行 citymaker 从入门到精通(2)——工程图层树加载

    工程树是指explorer左边这棵树 本例子实现了图层树加载,点击节点切换可视状态 树控件使用easyui的树 html部分 onCheck:treeProjectTreeOnCheck是指树节点的o ...

  2. 伟景行 citymaker 从入门到精通系列

    伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件 伟景行 citymaker 从入门到精通(2)——工程图层树加载   伟景行 citymaker 从入门 ...

  3. 伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件

    开发环境:citymaker 7(以下简称cm),jquery,easyui 1.4(界面),visual studio 2012(没有vs,不部署到IIS也行,html文件在本地目录双击打开可用) ...

  4. 最全的MonkeyRunner自动化测试从入门到精通(10)

    三.MonkeyRunner复杂的功能开始学习 (1)获取APK文件中ID的两种方式 Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工 ...

  5. 史上最全的MonkeyRunner自动化测试从入门到精通(3)

    原文地址https://blog.csdn.net/liu_jing_hui/article/details/60956088 MonkeyRunner复杂的功能开始学习 (1)获取APK文件中ID的 ...

  6. sql索引从入门到精通(十亿行数据测试报告)

    原文:sql索引从入门到精通(十亿行数据测试报告) 导读部分 --------------------------------------------------------------------- ...

  7. 《跟老齐学Python:从入门到精通》齐伟(编著)epub+mobi+azw3

    内容简介 <跟老齐学Python:从入门到精通>是面向编程零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用.以比较轻快的风格,向零基础的学习者介绍一门时下比较流 ...

  8. ASP.NET MVC4入门到精通系列目录汇总

    序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...

  9. Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引

    因为内容比较多,所以每篇讲解一些内容,最后会放出全部代码,可以参考.操作中总会遇到各式各样的问题,个人对部分问题的研究在最后一篇 问题研究 里.欢迎大家探讨学习. 代码都经过个人测试,但仍可能有各种未 ...

随机推荐

  1. Elasticsearch分布式安装启动失败

    配置config目录下的 elasticsearch.yml  http.cors.enabled: true http.cors.allow-origin: "*" #分布安装. ...

  2. intellij IDEA怎样打war包

    intellij IDEA怎样打war包 1: File-->Project Structure-->Artifacts, 点击+,选择Web Application:archive 可自 ...

  3. 搜索好题UVA1601

    题目 分析:如果以当前3个小写字母的位置为状态,则问题转化为图上的最短路问题.但是如果每次都判断小写字母的下一步是否合法,那就是说每次移动都需要判断5^3,肯定会超时.可以把所有可以移动的格子找出来建 ...

  4. poj1830开关问题——异或高斯消元

    题目:http://poj.org/problem?id=1830 根据题意,构造出n元方程组: a(1,1)x1 ^ a(1,2)x2 ^ a(1,3)x3 ... a(1,n)xn = st1 ^ ...

  5. iconMoon---小图标小记

    IcoMoon 是一个免费的图标库.可以下载自己需要的图标 三.使用流程.操作演示 进入主页,点击下图所示区域开始: 每个图标你都是可以自己进行标记的(移上去会看到Edit, 点击之),然后—— 注: ...

  6. CS231n 2016 通关 第二章-KNN 作业分析

    KNN作业要求: 1.掌握KNN算法原理 2.实现具体K值的KNN算法 3.实现对K值的交叉验证 1.KNN原理见上一小节 2.实现KNN 过程分两步: 1.计算测试集与训练集的距离 2.通过比较la ...

  7. linux下ping不通的解决方法

    转自:https://blog.csdn.net/weixin_33400820/article/details/80227702 今天在做练习的时候,发现如何都无法ping通外网,在经过各种网络求助 ...

  8. vs 2015 community Blend和devenv启动的区别

    使用Blend启动会有部分功能无法显示 如:SVN管理插件,工具栏 使用devenv启动会全部显示

  9. .net 下webservice 的WebMethod的属性

    WebMethod有6个属性: .Description .EnableSession .MessageName .TransactionOption .CacheDuration .BufferRe ...

  10. J20170403-gg

    うっすら 微微的,薄薄的 グラデーション 渐变 ぼかし(暈し) 晕色 由浓到淡渐变上色的东西 シャドウ 影子,阴影 ドメイン 域名  サブドメイン 子域名