首页 / 浏览问题 / 三维GIS / 问题详情
量算测量面积时我如何判断我点击的是第几个点
nk
29EXP 2021年03月30日
因为测量面积需要三个点,我要给点击第一次和第二次的时候添加文字说明,但是如何判断我点击的是第几次

1个回答

定义一个变量,每点击一次变量的值加1,然后通过变量 的值来判断是第几次。
6,077EXP 2021年03月30日
我不是要判断激活activeEvt这个方法点击的次数,是measureEvt这个量算的时候判断我点了几次,就是我每次点的不同的次数都要加文字说明
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
        var tooltip = createTooltip(document.body);
        var i=1;
        if(flag){
        handler.setInputAction(function (e) {
          if(i==1){
                tooltip.showAt(e.startPosition,'<p>左键点击确定折线中间点</p><p>右键单击结束绘制</p>');
            }
            else if(i==2){
                tooltip.showAt(e.startPosition,'<p>点击绘制第一个点</p>');
            }
            else if(i==3){
                tooltip.showAt(e.startPosition,'<p>点击绘制第一个diandiandian点</p>');
            }
            else if(i==4){
                tooltip.showAt(e.startPosition,'<p>点击绘制第一个dianian点</p>');
            }
        }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
        
        handler.setInputAction(function (e) {
          i++;
        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
        }

//初始化测量面积

    handlerArea = new Cesium.MeasureHandler(viewer, Cesium.MeasureMode.Area, 0);

    handlerArea.measureEvt.addEventListener(function (result) {

        var mj = Number(result.area);

        handler.setInputAction(function (e) {

            if (handlerArea) {

                tooltip.showAt(e.startPosition, '<p>再次左击可选择下一个点,右击确认是第一次左击和最后一次左击所组成的区域面积</p>');

                console.log(123213)

            }

        }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

        // var positions = result.positions;

        // if (selOptV == 3 || selOptV == 4) {

        //     mj = Number(calcClampValue(positions));

        // } else if (selOptV == 5) {

        //     mj = Number(calcAreaWithoutHeight(positions));

        // }

        var area = mj > 1000000 ? (mj / 1000000).toFixed(2) + 'km²' : mj.toFixed(2) + '㎡'

        handlerArea.areaLabel.text = '面积:' + area;

        handlerArea.areaLabel.outlineColor = {}

    });

    handlerArea.activeEvt.addEventListener(function (isActive) {

        if (isActive == true) {

            //handler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);

            viewer.enableCursorStyle = false;

            viewer._element.style.cursor = '';

            $('body').removeClass('measureCur').addClass('measureCur');

            handler.setInputAction(function (e) {

                if (handlerArea) {

                    tooltip.showAt(e.startPosition, '<p>左键点击选择第一个点,再次点击选择第二个点</p>');

                }

            }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

            handler.setInputAction(function (evt) {

                tooltip.setVisible(false);

                // handlerArea.clear();

                // handlerArea.deactivate();

                

                handler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);

            }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);

        }

        else {

            viewer.enableCursorStyle = true;

            $('body').removeClass('measureCur');

        }

    });

麻烦你看一下应该写哪里smiley

放到 handlerArea.activeEvt.addEventListener后面就行
point() {

                

                handlerPoint.activeEvt.addEventListener(function (isActive) {

                    if (isActive == true) {

                        viewer.enableCursorStyle = false;

                        viewer._element.style.cursor = '';

                        $('body').removeClass('drawCur').addClass('drawCur');

                    }

                    else {

                        viewer.enableCursorStyle = true;

                        $('body').removeClass('drawCur');

                    }

                });

                handlerPoint.movingEvt.addEventListener(function (windowPosition) {

                    tooltip.showAt(windowPosition, '<p>点击绘制一个点</p>');

                });

                handlerPoint.drawEvt.addEventListener(function (result) {

                    tooltip.setVisible(false);

                });

                this.deactiveAll();

                handlerPoint.activate();

            },

你好,问一下我如果想设置点的样式为本地图片该怎么改啊
...