Skip to content

测量距离

距离测量工具允许您的用户测量代表平面图中的对象(例如房屋、街道或墙壁)的两点之间的距离。选择此工具后,用户只需用指针点击起点与终点,即可取得两点间的距离。

距离测量工具有两类:线段测量工具与折线测量工具。线段测量工具可以测量起始和结束两点间的距离,折线测量工具会测量折线绘制过程中所有相邻两点间的距离,并计算总长度。

img

以线段测量工具为例,配置测量属性后,可通过以下步骤创建一个线段测量注释:

  1. 将工具类型设置为线段测量注释创建模式。
  2. 获取 distanceMeasurementCreateTool 线段测量工具的默认属性,在创建测量注释时将默认属性附加到测量注释上。再使用 annotationManager 类的 createMeasurementAnnotation 方法创建测量注释。

以下是创建线段测量注释的示例代码:

javascript
ComPDFKitViewer(...)
  .then(instance => {
    const { docViewer, UI } = instance;

    docViewer.addEvent('documentloaded', async () => {
        // 进入线段测量注释创建模式,初始化 DistanceMeasurementCreateTool。
        UI.setActiveToolMode('toolMenu-Measurement');
        UI.setActiveTool('measureLine');

        // 为注释设置默认测量属性。
        const defaults = docViewer.pdfViewer.distanceMeasurementCreateTool.defaults;
        const defaultStyles = docViewer.pdfViewer.distanceMeasurementCreateTool.defaultStyles;
        const leaderLineDefaultOptions = docViewer.pdfViewer.distanceMeasurementCreateTool.leaderLineDefaultOptions;

        const annotationData = {
            measure: 1,
            operate: 'add-annot',
            type: 'line',
            measureType: 'distance',
            pageIndex: 0,
            date: new Date(),
            rect: {
                left: 130,
                top: 45,
                right: 300,
                bottom: 75
            },
            linePoints: [300, 45, 130, 75],
            ...defaults,
            ...defaultStyles,
            ...leaderLineDefaultOptions
        };

        // 创建测量注释。
        const annotation = await docViewer.annotationManager.createMeasurementAnnotation(annotationData);
        // 渲染注释。
        docViewer.annotationManager.drawAnnotationsFromList(annotation);
    });