从 PDF 中提取楼层平面图要素 (Indoors)

摘要

根据 .pdf 文件创建折线要素。

可以使用编辑工具优化此工具的输出折线,并将其用作将要素导入室内数据集工具的输入,以填充 Indoors 工作空间以供楼层感知地图和场景使用。

使用情况

  • 该工具接受 .pdf 文件作为输入并根据 PDF 线创建折线。 使用此工具作为更大工作流程的一部分,从 PDF 文件提取平面图

  • 使用编辑工具优化输出折线要素,以移除不必要的线或折点、填补间隙或添加 PDF 中未包含的细节,然后将输出用作将要素导入室内数据集工具的输入。

  • 如果输入 .pdf 文件经过地理配准,则地理配准信息将受支持。 如果输入 .pdf 文件未进行地理配准,则生成的折线将在 WGS 1984 Web Mercator 坐标 0,0 处创建。

  • 对于多页 PDF,使用页码参数指定要导入的页面。

  • 此工具在输出中创建以下字段:

    • PDF_NAME- 输入 .pdf 的文件名。
    • PDF_NUMBER- 页码参数值。
    • USE_TYPE- 工具可识别门要素并填充其 USE_TYPE 字段。 使用将要素导入室内数据集工具创建单元要素时可以关闭这些要素。
  • 输出线要素参数值支持创建新要素类或向现有图层添加新的折线要素。 如果提供的现有图层包含具有与输入 PDF 匹配的 PDF_NAMEPDF_NUMBER 字段值的要素,则将删除这些折线要素并添加新的折线要素。

  • 创建输出线要素,其中 z 值为 0。 运行将要素导入室内数据集工具时设置级别的 z 值。

  • 使用范围参数来限制处理范围并排除 PDF 元素,例如图例、文本框和引线。

参数

标注说明数据类型
输入 PDF

将从中提取折线要素的输入 .pdf 文件。

File
输出线要素

将写入提取的折线的输出折线要素图层。

Feature Layer
页码
(可选)

将转换为折线数据的输入 .pdf 文件的页码。 默认值为 1。

String
范围
(可选)

将评估的数据范围。

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。
  • 绘制范围 构造直角并完成草图 - 范围将基于在地图或场景上绘制的矩形。
  • 图层范围 图层 - 范围基于活动地图图层。 选择可用图层或者使用所有图层中的数据范围选项。 每个地图图层具有以下选项:

    • 所有要素 全选 - 所有要素的范围。
    • 选定要素 基于选定要素的区域 - 选定要素的范围。
    • 可见要素 Extent Indicator - 可见要素的范围。

  • 浏览 浏览 - 范围将基于数据集。
  • 输入的交集 相交 - 范围将为所有输入的相交范围。
  • 输入的并集 联合 - 范围将为所有输入的合并范围。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围和坐标系复制到剪贴板。
    • 粘贴范围 粘贴 - 从剪贴板粘贴范围和坐标系。 如果剪贴板不包含坐标系,则范围将使用地图的坐标系。
  • 重置范围 重置 - 将范围重置为默认值。

当手动提供坐标时,坐标必须为数值,并且位于活动地图的坐标系中。 地图可能使用与提供的坐标不同的显示单位。 在南纬和西经坐标中使用负号。

Extent

arcpy.indoors.ExtractFloorPlanFeaturesFromPDF(in_pdf, out_line_features, {page_number}, {extent})
名称说明数据类型
in_pdf

将从中提取折线要素的输入 .pdf 文件。

File
out_line_features

将写入提取的折线的输出折线要素图层。

Feature Layer
page_number
(可选)

将转换为折线数据的输入 .pdf 文件的页码。 默认值为 1。

String
extent
(可选)

将评估的数据范围。

  • MAXOF - 将使用的所有输入的最大范围。
  • MINOF - 将使用的所有输入共用的最小范围。
  • DISPLAY - 范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。 坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent

代码示例

ExtractFloorPlanFeaturesFromPDF 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ExtractFloorPlanFeaturesFromPDF 函数。

import arcpy
arcpy.indoors.ExtractFloorPlanFeaturesFromPDF(r"C:\Indoors\PDFs\Floor1-Blueprint.PDF",
                                       r"C:\IndoorsDB\FloorPlanData\Floor1_ExtractedLines", 
                                       "1", 
                                       "-107.0 38.0 -104.0 40.0")
ExtractFloorPlanFeaturesFromPDF 示例 2(独立脚本)

以下独立脚本演示了如何使用 ExtractFloorPlanFeaturesFromPDF 函数。

#Name: Indoors_ExtractFloorPlanFeaturesFromPDF_example2.py
#Description: Extracts polyline floor plan features from an input PDF

import arcpy

# Check Out Extensions
arcpy.CheckOutExtension('Indoors')

# Set Local Variables
in_pdf=r"C:\Indoors\PDFs\Floor1-Blueprint.PDF"
out_line_features=r"C:\IndoorsDB\FloorPlanData\Floor1_ExtractedLines"
page_number="1"
extent="-107.0 38.0 -104.0 40.0"

# Call the function
arcpy.gp.ExtractFloorPlanFeaturesFromPDF(
    in_pdf,
    out_line_features,
    page_number,
    extent
)

# Check In Extensions
arcpy.CheckInExtension('Indoors')

环境

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 需要 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps。

相关主题