首页 / 浏览问题 / 移动GIS / 问题详情
Android中在绘制面时,想只在多边形中间展示最终结果
29EXP 2022年02月10日

想在多边形的中间显示最终结果,但不知道应该怎么实现,之前询问说是用Tracked3DListener来结束,但是要怎么改代码呢,有没有示例可以参考啊

// 测量面积
    private void measureSurearea(Tracking3DEvent tracking3DEvent) {
        // 加点
        // 更新测量面积
        double TotalArea = tracking3DEvent.getTotalArea();
        double totalcurrentlength = tracking3DEvent.getCurrentLength();
        Message msg = new Message();
        Bundle bundle = new Bundle();
        bundle.putDouble("Area", Double.parseDouble(new DecimalFormat("############.##").format(TotalArea)));
        msg.setData(bundle);
        totalLengthHandler.sendMessage(msg);
        Log.v("lzw", "TotalArea=" + TotalArea + ";" + "totalcurrentlength=" + totalcurrentlength);

        TextStyle textStyle = new TextStyle();
        textStyle.setAlignment(TextAlignment.MIDDLECENTER);
        textStyle.setFontScale(1);

        TextPart3D textPart3D2 = new TextPart3D();
        textPart3D2.setX(tracking3DEvent.getX());
        textPart3D2.setY(tracking3DEvent.getY());
        textPart3D2.setZ(tracking3DEvent.getZ());
        textPart3D2.setText("共" + String.valueOf(msg.getData().getDouble("Area"))+"平方米");
        Log.i("测试2", "textPart3D=" + textPart3D2.getText());

        GeoText3D geoText3D = new GeoText3D(textPart3D2);
        geoText3D.setTextStyle(textStyle);
        GeoPlacemark geoPlacemark = new GeoPlacemark("3D",geoText3D);
        sceneControl.getScene().getTrackingLayer().add(geoPlacemark,"geoText");

        textStyle.dispose();
        textPart3D2.dispose();
        geoText3D.dispose();

    }

1个回答

你好,是构建一个绘制完成的监听,可以拿到所绘制的geometry对象,然后通过geometry对象获取中心点(内点),再根据中心点坐标来显示您的文本对象
2,842EXP 2022年02月10日
那绘制点、线的也换成Tracked3DListener的监听吗
就是测高和测距
...