您现在的位置: 首页 > 室内三维可视化SDK开发 > 开发指南


1.三维场景数据信息检索 该功能提供查询三维场景上所有元素的信息检索功能 search

第一步,配置检索楼层范围


  //以下代码都要在三维场景加载完成事件里调用: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);
    });
三维场景分类分为一级12种分类,100多种二级分类,需要详细的三维场景分类,请加QQ群进行咨询.
易景空间三维场景分类