数据访问的“ SHAPE @ XY”和“ SHAPE @ TRUECENTROID”令牌之间有什么区别?


9

数据访问搜索光标

令牌"SHAPE@XY"和之间的区别是什么(如果有的话)"SHAPE@TRUECENTROID"

他们在测试多边形上返回了相同的坐标:

>>> cursor = arcpy.da.SearchCursor("test", "SHAPE@XY")
>>> for row in cursor:
...     print row[0]
...     
(559389.3838043335, 4239093.201390337)

>>> cursor = arcpy.da.SearchCursor("test", "SHAPE@TRUECENTROID")
>>> for row in cursor:
...     print row[0]
...     
(559389.3838043335, 4239093.201390337)

在此处输入图片说明

对于多部分面要素,其行为方式相同。它会返回不同的结果吗?

Answers:


4

我对此也很好奇,所以我问了一下,做了一些研究。我发现的是

SHAPE@XY A tuple of the feature's centroid x,y coordinates.
SHAPE@TRUECENTROID —A tuple of the feature's true centroid x,y coordinates.

本文介绍了在95%的时间内它们是如何相同的,但其余5%会导致细微的差异

https://geonet.esri.com/thread/92121

从文章中引用“因此这篇文章的重点是使用SHAPE @ XY令牌具有误导性。这与获取X&Y的SHAPE @ TRUECENTROID值相同。SHAPE@ X或SHAPE @ Y也是如此。这会给想要对地址位置进行地理编码然后进行任何类型的空间分析的人员造成问题,在这些情况下,对包裹中的点进行计数很重要,将有异形包裹,该包裹中应有一个点但不应该有一个点,而其他包裹中应有点我应该使用SHAPE @令牌来避免此问题,但是这意味着要占用更多的内存来容纳整个多边形geom对象,而不是仅保留该对象。质心,这会使脚本变慢。”


我真的很希望内线,所以这真的很有帮助。谢谢。
Emil Brundage

有没有内在的要点?也许只需用SHAPE @声明即可返回几何图形,并使用保证在几何图形之内或之上的labelPoint(resources.arcgis.com/de/help/main/10.1/index.html# //… )。
Michael Stimson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.