Python几何计算库读取几何,点线面要素游标搜索

55 篇文章 4 订阅
37 篇文章 3 订阅

Python几何计算库读取几何,点线面要素游标搜索

一、读取几何
要素类中的每个要素都包含一组用于定义面或线折点的点要素,或者包含单个用于定义一个点要素的坐标。可以使用几何对象( 面 Polygon、 折线 Polyline、 点几何 PointGeometry 或 多点 MultiPoint)访问这些点,这些几何对象将以 点对象的数组形式返回这些点。

要素可具有多个部件。几何对象的 partCount 属性将返回要素的部件数。如果指定了索引,则 getPart 方法将返回特定几何部件的点对象数组。如果未指定索引,则返回的数组将包含每个几何部件的点对象数组。

PointGeometry 要素将返回单个点对象而不是点对象数组。所有其他要素类型(面、折线和多点)将返回一个点对象数组,或者,如果要素具有多个部分,则返回包含多个点对象数组的数组。

如果一个面包含多个洞,它将由多个环组成。针对面返回的点对象数组将包含外部环及所有内部环的点。外部环总是先返回,接着是内部环,其中以空点对象作为环之间的分隔符。当脚本在地理数据库或 shapefile 中读取面的坐标时,它应包含用于处理内部环的逻辑(如果脚本需要此信息);否则,将只读取外部环。

多部件要素是由多个物理部分组成的,但是只引用数据库中的一组属性。例如,在州行政区图层中,可将夏威夷州看作是一个多部件要素。虽然它是由许多岛屿组成的,但在数据库中仍将其记录为一个要素。

环是一个用于定义二维区域的闭合路径。有效的环是由有效路径组成的,因而环的起点和终点具有相同的 x,y 坐标。顺时针环是外部环,逆时针环则定义内部环。

二、使用几何令牌
几何令牌同样可以作为快捷方式来替代访问完整几何对象。附加几何令牌可用于访问特定几何信息。访问完整几何往往更加耗时。如果只需要几何的某些特定属性,可使用令牌来提供快捷方式从而访问几何属性。例如,SHAPE@XY 会返回一组代表要素质心的 x,y 坐标。
在这里插入图片描述
(1)读取点几何
以下示例将使用 SearchCursor
点要素类上的搜索光标

import arcpy
infc = arcpy.GetParameterAsText(0)
for row in arcpy.da.SearchCursor(infc, ["SHAPE@XY"]):
   x, y = row[0]
   print("{0}, {1}".format(x, y))

在这里插入图片描述
(2)读取多点几何
多点要素类上的搜索光标

import arcpy
infc = arcpy.GetParameterAsText(0)
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
    print("Feature {0}:".format(row[0]))
    # For each point in the multipoint feature,
    #  print the x,y coordinates
    for pnt in row[1]:
         print("{0}, {1}".format(pnt.X, pnt.Y))

在这里插入图片描述
(3)读取折线或面几何
面或线要素类上的搜索游标

import arcpy
infc = arcpy.GetParameterAsText(0)
# Enter for loop for each feature
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
     # Print the current multipoint's ID
     print("Feature {0}:".format(row[0]))
     partnum = 0
     # Step through each part of the feature

     for part in row[1]:
         # Print the part number
         print("Part {0}:".format(partnum))
          # Step through each vertex in the feature
         for pnt in part:
             if pnt:
               # Print x,y coordinates of current point
                    print("{0}, {1}".format(pnt.X, pnt.Y))
              else:
                # If pnt is None, this represents an interior ring
                print("Interior Ring:")
             partnum += 1

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Cs.js是一个开源的WebGL框架,支持绘制点、线和面等3D图形。它提供了一个简单的封装负责管理WebGL渲染流程和带有简单工具的API。其中,cesium绘制点线面封装是其重要的功能之一。 cesium绘制点线面封装可以在3D场景中绘制不同的几何形状。它使用CeisumJS的基础结构,通过提供必要的参数,可以生成一个形状对象。这个形状对象可以在场景中随意移动、放大、旋转或者删除。除此之外,绘制点、线和面可以使用不同的样式和颜色。 通过cesium绘制点线面封装,用户可以创建简单的图形形状或是更加复杂的3D模型。例如,用户可以绘制一个球体、立方体、圆形或者多边形等形状。这些形状可以是实心的、空心的或者半透明的,且可以根据需要进行颜色和纹理的调整。 总的来说,cesium绘制点线面封装简化了3D场景的创建和管理流程。同时,它具有强大的可定制性,使得用户可以根据自己的需求和喜好制作精美的3D图形。 ### 回答2: Cesium是一种开放源代码的虚拟地球浏览器,它允许用户在浏览器中查看,操作和交互地理信息。Cesium提供了丰富的API,其中包括绘制多种类型的图形功能。Cesium绘制点线面封装,即是通过Cesium提供的API对点线面进行封装和自定义样式。 首先,可以使用Cesium的Entity API创建点线面,这些基本实体包括点、直线、多段线、面以及它们的混合体,如多边形和多面体。通过设置不同的样式和属性,例如颜色、透明度、线宽、面纹理等,可以自定义图形样式。 其次,Cesium还提供了Primitive类型来提高绘制效率和性能。Primitive是Cesium中一种基于WebGL实现的渲染图元,它可以用来绘制所有类型的点线面图形。具体而言,可以使用GroundPrimitive类型绘制贴地图形,如粒子云、热力图等;使用ShadowVolume类型绘制视觉效果良好和高效的实时阴影。 最后,Cesium提供了与三维地球视图交互的接口,可以在地球上自由移动、旋转、缩放视图,并支持与用户输入交互。因此,Cesium绘制点线面封装可以轻松实现图形可视化和交互性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木易GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值