Apa perbedaan antara token akses "SHAPE @ XY" dan "SHAPE @ TRUECENTROID"?

9

Kursor Pencarian Akses Data .

Apa, jika ada, perbedaan antara token "SHAPE@XY"dan "SHAPE@TRUECENTROID"?

Mereka mengembalikan koordinat yang sama pada poligon uji:

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

masukkan deskripsi gambar di sini

Itu berperilaku dengan cara yang sama untuk fitur poligon multi-bagian. Apakah pernah mengembalikan hasil yang berbeda?

Emil Brundage
sumber

Jawaban:

4

Saya ingin tahu tentang ini juga jadi saya bertanya-tanya sedikit dan melakukan riset. apa yang saya temukan adalah

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.

Artikel ini menjelaskan bagaimana mereka identik sekitar 95% dari waktu tetapi akan menghasilkan sedikit perbedaan 5% sisanya

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

dikutip dari artikel "Jadi maksud dari posting ini adalah bahwa menggunakan token SHAPE @ XY menyesatkan. Ini sama dengan mendapatkan nilai SHAPE @ TRUECENTROID untuk X&Y. Ini juga berlaku untuk SHAPE @ X atau SHAPE @ Y. Ini akan menyebabkan masalah bagi orang-orang yang ingin melakukan geocode pada lokasi-lokasi alamat dan kemudian melakukan segala jenis analisis spasial di mana penghitungan poin dalam paket adalah penting. yang seharusnya tidak ada di sana tetapi ditempatkan karena pusat gravitasi dari paket ganjil. Saya menggunakan BENTUK @ token untuk menghindari masalah ini, tetapi itu berarti lebih banyak memori yang dikonsumsi untuk memegang seluruh objek geom poligon bukan hanya centroid, yang membuat skrip menjadi lebih lambat. "

ed. terima kasih
sumber
Saya benar-benar berharap untuk titik dalam, jadi ini sangat membantu. Terima kasih.
Emil Brundage
Apakah tidak ada titik di dalam? Mungkin hanya menyatakan dengan SHAPE @ untuk mengembalikan geometri dan menggunakan labelPoint ( resources.arcgis.com/de/help/main/10.1/index.html#//… ) yang dijamin berada di dalam atau di geometri.
Michael Stimson