【ArcMap】计算选中线的长度

方法一:使用计算几何,计算字段的长度

image

 

image

 

image

 方法二:使用python2的代码计算

image

输入以下代码后回车:

import arcpy

try:
    # 获取当前地图中的所有图层
    mxd = arcpy.mapping.MapDocument("CURRENT")
    layers = arcpy.mapping.ListLayers(mxd)
    
    # 查找第一个线图层
    target_layer = None
    for layer in layers:
        if layer.isFeatureLayer:
            desc = arcpy.Describe(layer)
            if desc.shapeType == "Polyline":
                target_layer = layer
                break
    
    if target_layer is None:
        print "No line layer found"
        exit()
    
    print "Layer: " + target_layer.name
    
    # 检查是否有选中要素
    desc = arcpy.Describe(target_layer)
    if not desc.FIDSet:
        print "No selection, calculating all features"
    
    # 定义投影坐标系
    projected_cs = arcpy.SpatialReference(32650)  # UTM Zone 50N
    
    # 计算长度
    total_length = 0
    count = 0
    
    with arcpy.da.SearchCursor(target_layer, ["SHAPE@"]) as cursor:
        for row in cursor:
            if row[0]:
                projected_geom = row[0].projectAs(projected_cs)
                length = projected_geom.length
                total_length += length
                count += 1
    
    print "Features: " + str(count)
    
    # 格式化输出
    if total_length >= 1000:
        length_km = total_length / 1000.0
        print "Length: {:.2f} km".format(length_km)
        print "Length: {:.2f} m".format(total_length)
    else:
        print "Length: {:.2f} m".format(total_length)
    
except Exception as e:
    print "Error: " + str(e)

image

 

posted @ 2025-10-24 23:51  山鬼谣`  阅读(5)  评论(0)    收藏  举报