Đưa ra một đối tượng Không gian trong R, làm cách nào để cắt tất cả các phần tử của nó nằm trong một khung giới hạn?
Có hai điều tôi muốn làm (lý tưởng nhất là tôi biết cách làm cả hai, nhưng đó là một giải pháp chấp nhận được cho vấn đề hiện tại của tôi - hạn chế một hình đa giác ở Hoa Kỳ lục địa).
Thả từng phần tử không đầy đủ trong hộp giới hạn. Điều này có vẻ như
bbox()<-
là cách hợp lý, nhưng không có phương pháp như vậy tồn tại.Thực hiện một thao tác clip thực sự, sao cho các phần tử không cực nhỏ (ví dụ: đa giác, đường thẳng) bị cắt ở ranh giới .
sp::bbox
thiếu một phương thức gán, vì vậy cách duy nhất tôi nghĩ ra là sử dụngover
hoặcgContains
/gCrosses
kết hợp với một đối tượng SpatialPolygons chứa một hộp có tọa độ của hộp giới hạn mới. Sau đó, khi cắt một đối tượng đa giác, bạn phải tìm ra cái nào được chứa so với chữ thập và thay đổi tọa độ của các đa giác đó để chúng không vượt quá hộp. Hoặc một cái gì đó nhưgIntersection
. Nhưng chắc chắn có một cách đơn giản hơn?
Mặc dù tôi biết rằng có nhiều vấn đề với các hộp giới hạn và lớp phủ không gian cho đa giác xác định vùng quan tâm thường được ưa thích hơn, trong nhiều trường hợp, các hộp giới hạn hoạt động tốt và đơn giản hơn.
gIntersection
và Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, "rgeos_intersection") : TopologyException: no outgoing dirEdge found at 3 2.5
không có thời gian để gỡ lỗi ngày hôm nay; đã viết lên một phiên bản cẩu thả và sẽ sửa chữa trong tương lai.