首页 / 浏览问题 / 三维GIS / 问题详情
打开场景,可以定位到三维模型的位置,但是三维模型出不来
yue
5EXP 2018年09月01日
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML>
<html>
<head>
<base href="<%=basePath%>">
<%@ include file="/sc/sys/common.jsp"%>
<script type="text/javascript" src="sc/sys/res/SuperMap.Include.js">
<title>地图管理</title>
</script>
<script type="text/javascript">
    var scene = null;
    var sceneAddress = null;
    var sceneName = null;
    var sceneControl = null;
//     var htmlUrl = document.location.host;
    $(function() {
        getUrlAndName();
    });
    //判断网页的打开方式是本地打开还是通过网络打开
    //不同的打开方式url赋值不同
/*     if (htmlUrl == "") {
        htmlUrl = "http://localhost:8090";
    } else {
        htmlUrl = "http://" + htmlUrl;
    } */
     function getUrlAndName() {
        sc.ajax("3DMap/getUrlAndName", null, function (result) {
            if(result){
                sceneAddress = result.tdmapUrl;
                sceneName = result.tdmapName;
            }
        },false);
    }
    function onPageLoad() {
        //初始化三维场景控件
        try {
            //初始化三维场景控件实例,参数为包含控件的HTML元素
            if(sceneControl == null){
                sceneControl = new SuperMap.Web.UI.Controls.SceneControl(
                    $get("sceneControlDiv"), initCallback, failedCallback);
            }
            
        } catch (e) {
            //若没有安装插件,则抛出该异常
            if (e.name == SuperMap.Web.Realspace.ExceptionName.PlugInNotInstalled) {
                var ie =window.navigator.platform;
                if(ie =="Win32") {
                var url = sc.getRootPath() + "/sc/res/Setup_32.exe";
                document.write("您使用的是32位浏览器,请点击下载32位 <a href='" + url +"'>SuperMap iClient3D For Plugin</a> 插件进行安装");
                return;
                }
                else if(ie =="Win64") {
                var url = sc.getRootPath() + "/sc/res/Setup.exe";
                document.write("您使用的是64位浏览器,请点击下载64位 <a href='" + url +"'>SuperMap iClient3D For Plugin</a> 插件进行安装");
                return;
                }
            }
            //若使用非IE浏览器,则抛出该异常
            else if (e.name == SuperMap.Web.Realspace.ExceptionName.BrowserNotSupport) {
                document.write("<p>SuperMap iClient 7C for Realspace目前只支持IE浏览器</p>");
                return;
            }
            //抛出其他异常
            else {
                alert(e.message);
            }
        }
    }

    //控件初始化完成后的回调函数,初始化完成之后才能进行数据加载
    function initCallback() {
        //获取地球控件场景,控件和场景是一对一的捆绑关系
        scene = sceneControl.get_scene();
        //打开场景
        scene.open("http://47.104.151.51:8090/iserver/services/3D-GongSiSanQi/rest/realspace", "公司三期");
        //获取场景中的图层
        debugger
         var layer3D = scene.get_layer3Ds().get_item("Ground@OlympicGreen");             
         if (layer3D != null)
         {
             //获取图层的地理范围,并飞行到该范围
             var geobound = layer3D.get_bounds();  
             scene.get_flyingOperator().flyToBounds(geobound);
         }  
    }

    //控件初始化失败后的回调函数
    function failedCallback() {
        alert("Realspace initialized failed!");
    }
</script>
</head>

<body onLoad="onPageLoad()">
    <div id="sceneControlDiv"
        style="position:absolute;left:0px;top:0px;bottom:0px;right:0px">
    </div>
</body>
</html>

1个回答

请检查是否给图层生成了缓存。
5,560EXP 2018年09月03日
服务里加有缓存
用桌面打开这个工作空间看看。如果是缓存的话,应该是不用数据源的。
打开可以看到模型,我用浏览器访问时可以定位到模型的位置,但是三维模型出不来
桌面打开场景的时候,图层的图标是什么呢?或者说,工作空间中有没有数据源呢?如果把数据源删除还能否看到模型。
打开是一个小眼睛还有一个箭头,工作空间是空的
截个图吧?还有如果确定生成了缓存,看一下缓存配置文件后缀是什么,是scv还是scp

后缀是scp

检查一下图层名字哈。

你这里的图层名字叫Config,但你搜索时找的是 scene.get_layer3Ds().get_item("Ground@OlympicGreen");
Ground@OlympicGreen 改成Config也不行
那再确认一下相机视角,看看插件客户端中的相机视角和桌面是否一致呢?

另外想问一下您用的哪个版本的插件客户端?
SuperMap_iClient3D_8C_(2017)_sp1_x32_for_Plugin,怎么看相机视角和桌面上的相机视角?
桌面里,场景的左下角通常标着当前场景的中心点坐标。

webgl的话,前端代码获取camera即可。
这个编码格式会影响吗?我的项目是GBK的
单独写了一个demo,访问那个服务地址,可以加载出来三维模型
求一份啊。我写的也是能定位但没出图像只能用超图自带的数据才能看到。坐标也是在网上转为迪卡尔集坐标的还是没得相机调了也不出来
桌面打开的相机高度是900m多,而浏览器打开的页面里相机高度是306.69m
你这样试试吧:用和插件客户端同样版本的桌面生成场景缓存。

另外看看是不是电脑中装了多个插件客户端,如果是的话,去掉多余的,只保留当前版本的。
...