Tôi làm cách nào để ánh xạ điểm và đa giác thành các loại java. Nếu điều này là không thể, giải pháp thay thế là gì?Hỗ trợ không gian địa lý trong JPA
Tôi muốn sử dụng hỗ trợ không gian địa lý trong mysql hoặc postgres thông qua JPA.
Tôi làm cách nào để ánh xạ điểm và đa giác thành các loại java. Nếu điều này là không thể, giải pháp thay thế là gì?Hỗ trợ không gian địa lý trong JPA
Tôi muốn sử dụng hỗ trợ không gian địa lý trong mysql hoặc postgres thông qua JPA.
DataNucleus hỗ trợ lưu giữ/truy vấn phần lớn các loại không gian địa lý chung trong JPA (và JDO). Xem liên kết này để biết danh sách các loại được hỗ trợ http://www.datanucleus.org/products/accessplatform_3_0/rdbms/spatial_types.html
Ánh xạ bản đồ và đa giác trong java không phải là rất tự nhiên. (logic trừu tượng sẽ khá cồng kềnh). Tôi sẽ đề nghị sử dụng mô hình đồ thị (như rdf). Nhưng điều đó có thể có một mức độ tốt của đường cong học tập. Vui lòng xem GVSig. Chúng là dự án mã nguồn mở dựa trên java.
Tôi đã đánh giá chúng trước khi chuyển sang phân tích không gian địa lý hoàn chỉnh hơn bằng Allegrograph và RDF.
suy nghĩ của bạn về biểu đồ allegro là gì? –
tôi đã sử dụng Hibernate Spatial như đã đề cập ở PostGIS and JPA 2.0
Tôi cố gắng này quá - bạn có thể lấy dữ liệu nếu bạn khai báo lĩnh vực của bạn trong JPA như một Byte[]
và nó sẽ đi xuống như một blob, nhưng trong MySQL định dạng nội bộ không gian - Vì vậy, không có vấn đề gì, bạn sẽ luôn luôn có được một định dạng nội bộ không đọc được - đặt cược tốt nhất của bạn trong JPA là sử dụng một truy vấn SQL tự nhiên để lấy dữ liệu dưới dạng văn bản.
SELECT AsText(columnName) FROM tableName;
Đối với instace:
String sql = "SELECT AsText(LOCATION) FROM ENTITY where id=?1";
return (String) em.createNativeQuery(sql)
.setParameter(1, id)
.getSingleResult();
lợi nhuận trong trường hợp của tôi: POINT(40.01999 -75.147171)
.
Tôi đang xem xét forking hibernate spatial và tạo một số cơ bản chung JPA 2.1 không gian địa lý thư viện hỗ trợ. Một cái gì đó giống như 'không gian JPA'. –