Câu trả lời:
affinity
Mô-đun của Shapely hỗ trợ các phép biến đổi affine trên bất kỳ hình học nào, ví dụ:
from shapely import affinity
from shapely.geometry import LineString
# Example geometry
line = LineString([(1, 3), (1, 1), (4, 1)])
# Rotate 30 degrees CCW from origin at the center of bbox
line_rot_center = affinity.rotate(line, 30, 'center')
# Rotate from origin at (1, 1)
line_rot_11 = affinity.rotate(line, 30, (1, 1))
help(shapely.affinity)
. Trên thực tế tôi gần như đã hoàn tất việc chuẩn bị cập nhật thủ công cho mô-đun.
Tôi không thấy bất kỳ tính năng nào trong Python hoặc Shapely để làm như vậy nhưng bạn có thể làm điều này với JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, lib được sử dụng bởi Shapely là một cổng của JTS nhưng JTS có nhiều chức năng hơn)
Bạn có thể tải xuống phần mềm tại đây http://sourceforge.net/projects/jts-topo-suite/ và khởi chạy testbuilder.sh hoặc testbuilder.bat tùy thuộc vào hệ điều hành của bạn để chơi để khám phá. Sau khi bạn hiểu, những điều cơ bản bạn sẽ phải làm tương tự mà không cần GUI mà chỉ với lập trình Java.
http://geoscript.org/ có thể giúp bạn tạo keo giữa mã python và java (vì một triển khai sử dụng Jython)
Cỏ có thể làm điều đó bằng cách sử dụng v.transform .
Bạn có thể sử dụng các ràng buộc trăn gdal để thực hiện các phép biến đổi affine http://www.gdal.org/ogr/osr_tutorial.html
Vì nó được xây dựng trên đỉnh proj / geos / gdal, bạn có thể làm những điều tương tự như trong shapely + more