webgl 8c点坐标偏移

0 投票
188 浏览
webgl 8c用以下代码,添加点,坐标会偏移到很远的地方,怎么解决?

var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);

    //设置鼠标左键单击回调事件
    handler.setInputAction(function(e) {
        //首先移除之前添加的点
        viewer.entities.removeAll();
        //获取点击位置笛卡尔坐标
        var position = scene.pickPosition(e.position);

        //将笛卡尔坐标转化为经纬度坐标
        var cartographic = Cesium.Cartographic.fromCartesian(position);
        var longitude = Cesium.Math.toDegrees(cartographic.longitude);
        var latitude = Cesium.Math.toDegrees(cartographic.latitude);
        var height = cartographic.height;
        if(height < 0) {
            height = 0;
        }
        //在点击位置添加对应点
        viewer.entities.add(new Cesium.Entity({
            point : new Cesium.PointGraphics({
                color : new Cesium.Color(1, 1, 0),
                pixelSize : 10,
                outlineColor : new Cesium.Color(0, 1, 1)
            }),
            position : Cesium.Cartesian3.fromDegrees(longitude, latitude , height + 0.5)
        }));
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
最新提问 3月 13 分类:  188次浏览 | 用户: A_123456 才疏学浅 (10 分)

1个回答

0 投票

您好,请问你是参考的我们这个范例吗http://support.supermap.com.cn:8090/webgl/examples/editor.html#pickPosition

是的话,应该本身是没有偏移得,你在代码中把高度加了0.5米,你看是不是这个原因造成的

  position : Cesium.Cartesian3.fromDegrees(longitude, latitude , height + 0.5)改成

  position : Cesium.Cartesian3.fromDegrees(longitude, latitude , height )试试

最新回答 3月 13 用户: 胡林 名扬四海 (5,770 分)
删改了也是这样
我们的这个范例你试着有问题吗?

没有问题,我用的是8C的webgl,问题只在把地图放大的时候出现,点击得到的坐标是没错的,但是那个点的坐标会偏移到很远的地方,那个点在把地图缩小到一定程度又是符合的

比如我在以下地方点击

点在以下地方显示

但缩小到移动程度,这个点又随着鼠标点击出现了

你用最新的webgl试试呢,http://support.supermap.com.cn:8090/webgl/downloads.html

替换Build目录就行了

...