您现在的位置: 首页 > 室内三维可视化SDK开发 > 开发指南
1.三维场景数据信息检索 该功能提供查询三维场景上所有元素的信息检索功能
第一步,配置检索楼层范围
//以下代码都要在三维场景加载完成事件里调用:map.on('loadComplete',function(){ //yourcode })
var queryFloors = "all" //全楼层检索。也可以传入某个楼层,或者一组楼层(数组)
第二步,配置检索字段
检索字段共包含七种: nodeType : 单一元素类型,可选。 esmap.ESNodeType.MODEL, (房间) esmap.ESNodeType.FACILITY, (图片poi) esmap.ESNodeType.LABEL, (文字poi) esmap.ESNodeType.IMAGE_MARKER, (自定义图片标注) esmap.ESNodeType.TEXT_MARKER, (自定义文字标注) esmap.ESNodeType.MODEL3D, (三维模型标注) name : 三维场景元素name,精确查询,结果可能是多个,可选。 keyword : 关键词查询,模糊查询,可选。 ID : 三维场景元素ID,精确查询(同时支持三维场景元素ID列表数组)可选。 FloorNum : 元素所属楼层,可选。与第一步骤中queryFloors作用一样,但此处只能指定单个楼层 typeID : 元素所属分类ID,可选。 dataID : 用户在编辑器中配置的自定义ID(您自己系统的数据ID),可选。 types : 检索的图层类型(多选)。如不指定,默认检索三维场景所有类型的图层。默认值:(esmap.ESLayerType) [ esmap.ESLayerType.MODEL, (房间) esmap.ESLayerType.MODEL_LABEL, (文字label) esmap.ESLayerType.MODEL_POI, (图片poi) esmap.ESLayerType.IMAGE_MARKER, (自定义图片标注) esmap.ESLayerType.TEXT_MARKER, (自定义文字标注) esmap.ESLayerType.MODEL3D, (三维模型标注) esmap.ESLayerType.LOCATION_MARKER (定位标注) ]
示例:
//根据关键字模糊查询。如查询关键字为"车位"的房间
var queryParams = {
nodeType: esmap.ESNodeType.MODEL, //nodeType指定为房间类型
keyword: '车位'
};
//根据三维场景元素id或者三维场景元素name精确查询。如查询三维场景元素ID为56的poi
var queryParams = {
nodeType: esmap.ESNodeType.FACILITY, //nodeType指定为poi类型
ID: 56, //三维场景元素ID
//name: '出口' //或者根据三维场景元素name查询
};
//查询自定义ID(dataID,三维场景编辑器编辑的用户自定义ID)为 "38747" 的房间(您自己系统的数据ID) (2021.11新增参数)
var queryParams = {
nodeType: esmap.ESNodeType.MODEL, //nodeType指定为房间类型
dataID: "38747", //dataID支持字符串类型(您自己系统的数据ID)
//name: '出口' 或者根据name查询
};
//按分类搜索,查询所有分类为厕所(typeID=2)的房间,会查出所有以2开头的二级分类的房间
var queryParams = {
nodeType : esmap.ESNodeType.MODEL,
typeID : 2
};
//检索多种元素。如查询所有name为'电梯'的label,poi和房间。
var queryParams = {
types:[esmap.ESLayerType.MODEL_POI,esmap.ESLayerType.MODEL_LABEL,esmap.ESLayerType.MODEL],
name:'电梯'
}
第三步,调用三维场景查询函数,并对查询结果进行操作
esmap.ESMapUtil.search(map, queryFloors, queryParams, function (e) {
console.log(e)
})
//示例: 查询一楼所有房间:
esmap.ESMapUtil.search(map,1,{nodeType:esmap.ESNodeType.MODEL},function(e){
console.log(e)
//1层的所有的房间
})
//示例: 查询三,四,五楼所有poi:
esmap.ESMapUtil.search(map,[3,4,5],{nodeType:esmap.ESNodeType.FACILITY},function(e){
console.log(e)
//3,4,5层的所有的POI
})
2.三维场景周边信息查询 该功能提供根据距离寻找当前位置附近的信息
第一步,确定当前位置坐标点coord
搜索将以此点为中心
var coord = {
x:12694512.917888649,
y:2569003.7859249497
}
第二步,确定搜索半径radius(单位:米)
var radius = 30;
第三步,开始查询
var params = {
//查询的坐标点
mapCoord: coord,
//查询的范围半径
radius: radius,
// 要查询 的类型
nodeType: esmap.ESNodeType.MODEL
}
esmap.ESMapUtil.search(map,"all", params, function (data) {
//输出查询结果
console.log(data);
});