arcpy.indoors.CreateIndoorsDatabase(target_gdb, {create_network}, {spatial_reference}, {create_attribute_rules})名称说明数据类型target_gdb包含 ArcGIS Indoors 信息模型的地理数据库,用于管理室内 GIS 信息以在 Indoors 应用程序中使用。
Workspacecreate_network(可选)指定是否在 Indoors 数据库中创建包含室内交通网络要素类(地标、路径和楼层过渡)的网络数据集。
CREATE_NETWORK—将创建网络数据集和要素类。 这是默认设置。NO_CREATE_NETWORK—不会创建网络数据集和要素类。Booleanspatial_reference(可选)输出 Indoors 数据库的空间参考。 如果未设置空间参考,则输出 Indoors 数据库将使用 WGS84 Web 墨卡托(辅助球体)作为水平坐标系,WGS84 作为垂直坐标系。 可通过多种方式指定空间参考,包括:
引用包含要应用的空间参考的要素类或要素数据集(例如 C:/workspace/myproject.gdb/indoors/details)。定义 SpatialReference 对象。 您可以使用以下任意一个选项来定义空间参考对象:工厂代码,例如:sr = arcpy.SpatialReference(3857, 115700)名称,例如:sr = arcpy.SpatialReference("WGS 1984 Web Mercator (auxiliary sphere)", "WGS 1984") 使用空间参考的熟知文本 (WKT) 字符串。 一种可用于确定空间参考的 WKT 的方法是将空间参考导出为字符串,例如 arcpy.SpatialReference(3857, 115700).exportToString()。
Spatial Referencecreate_attribute_rules(可选)指定是否将在 Indoors 数据库中创建属性规则以及相关字段和错误数据集。 这些属性规则包括用于楼层平面图数据质量控制工作流的验证校验。 目标地理数据库必须是已配置为分支版本化的文件地理数据库或企业级地理数据库。
CREATE_RULES—将创建属性规则和错误图层。 这是默认设置。NO_CREATE_RULES—不会创建属性规则和错误图层。Boolean派生输出名称说明数据类型updated_gdb将在其中生成 Indoors 方案和数据结果的地理数据库。
Workspace代码示例CreateIndoorsDatabase 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 CreateIndoorsDatabase 函数创建包含网络的 Indoors 地理数据库:
import arcpy
arcpy.indoors.CreateIndoorsDatabase("C:/Indoors/ExampleCampus.gdb", "CREATE_NETWORK", "C:/workspace/myproject.gdb/featureclass", "NO_CREATE_RULES")CreateIndoorsDatabase 示例 2(独立脚本)以下独立脚本演示了如何使用 CreateIndoorsDatabase 函数创建不含网络的 Indoors 地理数据库。
# Name: Indoors_CreateIndoorsDatabase_example2.py
# Description: Creates Indoors model items in an empty file geodatabase.
import arcpy
# Set local variables
out_folder_path = r"C:\Indoors"
out_name = "ExampleCampus.gdb"
indoors_network = "NO_CREATE_NETWORK"
spatial_reference = arcpy.SpatialReference("WGS 1984 Web Mercator (auxiliary sphere)", "WGS 1984")
create_attribute_rules = "NO_CREATE_RULES"
# Execute CreateFileGDB
arcpy.CreateFileGDB_management(out_folder_path, out_name)
# Execute CreateIndoorsDatabase on empty file geodatabase
arcpy.indoors.CreateIndoorsDatabase(r"{0}\{1}".format(out_folder_path, out_name), indoors_network, spatial_reference, create_attribute_rules)