使用产品:iserver 8c 操作系统:win7 x64
数据类型: oracle 11g x64 或 文件型
问题详细描述:sceneControl 绑定 objectSelected 场景中模型对象选中函数无效
问题重现步骤:
1.
//初始化三维场景控件实例,参数为包含控件的HTML元素
sceneControl = new SuperMap.Web.UI.Controls.SceneControl($get("sceneControlDiv"), initCallback, failedCallback);
2.
/**
* 控件初始化完成后的回调函数,初始化完成之后才能进行数据加载
*/
function initCallback() {
//获取地球控件场景,控件和场景是一对一的捆绑关系
scene = sceneControl.get_scene();
screenLayer = scene.get_screenLayer3D();
trackingLayer = scene.get_trackingLayer3D();
camera = scene.get_camera();
sceneControl.addEvent("objectSelected", objectSelected);
sceneControl.addEvent("bubbleInitialize",bubbleInitialize);
sceneControl.addEvent("bubbleResize",bubbleResize);
sceneControl.addEvent("bubbleClose",bubbleClose);
if(scene != null){
openScene();
}
//添加屏幕图层文本
addScreenText();
//获取FlyManager对象
flyManager = scene.get_flyManager();
}
3.
/**
* 选择对象方法
* @param selected3d
*/
function objectSelected(selected3d) {
var objId = selected3d[0].get_item(0);
var objInLayer3D = selected3d[0].get_layer3D();
var feature3D = objInLayer3D.findFeature3DByID(objId);
switch(objId){
case 206:
infoPage = "/rehab/map/plugin/html/Info_1.htm";
break;
case 156:
infoPage = "/rehab/map/plugin/html/Info_3.htm";
break;
case 17:
infoPage = "/rehab/map/plugin/html/Info_2.htm";
break;
default:
infoPage = "/rehab/map/plugin/html/noInfo.htm";
break;
}
if(feature3D !== null){
var point3D = null;
if (feature3D) {
point3D = feature3D.get_geometry().get_position();
}
createBubble(point3D);
}else{
var dataName = objInLayer3D.get_dataName();
console.log("选择的layer的名称: " + dataName);
var layerName = "";
if(dataName !== null && dataName !== ""){
layerName = dataName.split("@")[0];
}
//如果是缓存场景,可能无法调用findFeature3DByID接口,需要根据矢量地图服务来查询这个feature3D
doSqlQueryById(layerName, objId);
setTimeout(function() {
createBubble(currentPoint);
}, 100);
}
}
我看了 scencontrol 也注册了这个代码,为什么我点击缓存场景中的模型的时候,就是不能够进这个 objectSelected的函数的断点呢?求指点,谢谢!