Jaka jest różnica między tokenami „SHAPE @ XY” i „SHAPE @ TRUECENTROID” dostępu do danych?

9

Kursor wyszukiwania dostępu do danych .

Jaka jest różnica między tokenami "SHAPE@XY"a "SHAPE@TRUECENTROID"?

Zwrócili te same współrzędne na testowym wielokącie:

>>> 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)

wprowadź opis zdjęcia tutaj

Zachowywał się tak samo w przypadku wieloczęściowej operacji wielokąta. Czy kiedykolwiek zwraca różne wyniki?

Emil Brundage
źródło

Odpowiedzi:

4

Byłem również tego ciekawy, więc trochę zapytałem i przeprowadziłem badania. to co znalazłem było

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.

W tym artykule opisano, jak są one identyczne w około 95% przypadków, ale spowoduje niewielką różnicę w pozostałych 5%

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

cytowany z artykułu „Więc chodzi o to, że użycie tokena SHAPE @ XY jest mylące. To samo, co uzyskanie wartości SHAPE @ TRUECENTROID dla X&Y. Dotyczy to również SHAPE @ X lub SHAPE @ Y. Spowoduje to problemy dla osób, które chcą geokodować adresy lokalizacji, a następnie przeprowadzać wszelkiego rodzaju analizy przestrzenne, w których ważne jest liczenie punktów w paczkach. Będą działki o dziwnych kształtach, które powinny mieć punkt w środku, ale go nie mają, oraz punkty w innych paczkach które nie powinny tam być, ale są umieszczone ze względu na środek ciężkości nieparzystej paczki. Używam tokena SHAPE @, aby uniknąć tego problemu, ale to oznacza, że ​​więcej pamięci jest zajęte, aby pomieścić cały obiekt geom wielokąta zamiast samego centroid, co sprawia, że ​​skrypt działa wolniej ”.

ed. dziękuję
źródło
Naprawdę liczyłem na punkt wewnętrzny, więc jest to bardzo pomocne. Dzięki.
Emil Brundage
Czy nie ma punktu wewnętrznego? Być może po prostu zadeklaruj za pomocą SHAPE @, aby zwrócić geometrię i użyj labelPoint ( resources.arcgis.com/de/help/main/10.1/index.html#//… ), który z pewnością znajduje się w geometrii lub na niej.
Michael Stimson,