模拟挖方9D

0 投票

64位912

三维gis 前端。OSGB 缓存。8c中此案例可以使用,9D中为何不可用?

6月 6 分类:  63次浏览 | 用户: SuperMap 初出茅庐 (56 分)

2 个回答

0 投票
把osgb数据转成s3m了么
6月 6 用户: 赵爽 名扬四海 (4,466 分)
没有转。不是用的webgl,用的插件客户端
赵老师?
稍等,我把问题转给 插件客户端支持人员
多谢。赵老师。
0 投票
9d插件客户端,测量操作的返回结果从GeoRegion3D变成了中心点,所以相关的方法都不可用了。

解决办法是,改成在绘制过程中记录鼠标点击,然后将点击的点绘制成GeoRegion3D
6月 6 用户: 张阳名 登峰造极 (5,347 分)
你好,张老师,有代码参考没??
张老师,你看我代码那里有问题。

var pt = new SuperMap.Pixel(e.get_clientX(), e.get_clientY());
                this._point = this._sceneControl.pixelToGlobe(pt, SuperMap.Web.Realspace.PixelToGlobeMode.TerrainAndModel);

                this._points.add(new SuperMap.Web.Core.Point3D(this._point.x, this._point.y, (this._point.z + 0.05)));

 var layer3Ds_count = scene.get_layer3Ds().get_count();
            var layer3D = scene.get_layer3Ds().get_item(1);
            layer3D.set_isExcavation(true);
            //设置地下深度等信息
            underground = scene.get_underground();
            underground.set_isVisible(true);
            underground.set_depth(500);
            //设置地表透明度信息,值域范围在0-1
            globalImage = scene.get_globalImage();
            globalImage.set_transparency(0);

            var region3D = new SuperMap.Web.Core.GeoRegion3D();
            region3D.addPart(this._points);

            array = "";
            globalImage.clearExcavationRegions();
            excavationRegionValue = 0;
            var style3d = new SuperMap.Web.Core.Style3D();
            style3d.set_altitudeMode(1);
            //style3d.set_bottomAltitude(100);
            style3d.set_extendHeight(-3);
            //style3d.set_lineColor(new SuperMap.Web.Core.Color(85,107,47, 0));
            var topurl = getSuperMapServerUrl() + "/iserver/excavationregion_top.jpg";
            var sideurl = getSuperMapServerUrl() + "/iserver/excavationregion_side.jpg";
            style3d.set_sideTextureFiles([sideurl]);
            style3d.set_topTextureFile(topurl);
            style3d.set_tilingU(5);
            style3d.set_tilingV(1);
            style3d.set_altitudeMode(3);
            //var trackingLayer = scene.get_trackingLayer3D();
            //trackingLayer.set_isVisible(true);

            region3D._innerGeometry.style3D = style3d._innerStyle3D;
            //region3D._innerStyle3D = style3d._innerStyle3D;
            globalImage.addExcavationRegion(region3D, excavationRegionValue++);
看上去似乎没问题。

如果是没有正确返回结果的话,个人建议,使用console.log()设置断点,确认是哪里出的问题。

另外这周晚些时候我也会出个demo。
...