Sự khác biệt giữa mã thông báo của SHAPE @ XY và truy cập dữ liệu của SHAPE @ TRUECENTROID là gì?


9

Truy cập dữ liệu con trỏ .

Điều gì, nếu có, là sự khác biệt giữa các mã thông báo "SHAPE@XY""SHAPE@TRUECENTROID"?

Họ đã trả lại các tọa độ tương tự trên một đa giác thử nghiệm:

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

nhập mô tả hình ảnh ở đây

Nó hoạt động theo cùng một cách cho một tính năng đa giác nhiều phần. Có bao giờ trả lại kết quả khác nhau?

Câu trả lời:


4

Tôi cũng tò mò về điều này vì vậy tôi đã hỏi xung quanh một chút và thực hiện một số nghiên cứu. những gì tôi tìm thấy là

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.

Bài viết này mô tả cách chúng giống hệt nhau khoảng 95% thời gian nhưng sẽ dẫn đến một sự khác biệt nhỏ 5% còn lại

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

trích dẫn từ bài viết "Vì vậy, quan điểm của bài đăng này là việc sử dụng mã thông báo SHAPE @ XY là sai lệch. Cũng giống như nhận giá trị SHAPE @ TRUECENTROID cho X & Y. Điều này cũng đúng với SHAPE @ X hoặc SHAPE @ Y. Điều này sẽ gây ra vấn đề cho những người muốn xác định vị trí địa chỉ địa chỉ và sau đó thực hiện bất kỳ loại phân tích không gian nào trong đó việc tính điểm trong bưu kiện là quan trọng. Sẽ có các bưu kiện có hình dạng kỳ lạ nên có một điểm bên trong nhưng không và các điểm trong các bưu kiện khác không nên ở đó nhưng được đặt do trọng tâm của lô lẻ. Tôi sử dụng mã thông báo SHAPE @ để tránh vấn đề này, nhưng điều đó có nghĩa là nhiều bộ nhớ hơn được sử dụng để giữ toàn bộ đối tượng geom đa giác thay vì chỉ centroid, tạo ra một kịch bản chậm hơn. "


Tôi đã thực sự hy vọng cho điểm bên trong, vì vậy điều này thực sự hữu ích. Cảm ơn.
Emil Brundage

Không có một điểm bên trong? Có lẽ chỉ cần khai báo với SHAPE @ để trả về một hình học và sử dụng labelPoint ( resources.arcgis.com/de/help/main/10.1/index.html#//... ) mà là đảm bảo được trong hoặc trên hình học.
Michael Promotionson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.