Tôi tự hỏi có cách nào để trực quan hóa dữ liệu 3d bằng mapserver không? Các tệp 3D .shp nằm trong cơ sở dữ liệu postgis và tôi đã kết nối máy chủ maps với cơ sở dữ liệu, nhưng với lớp đơn giản trong mapfile.
Tôi tự hỏi có cách nào để trực quan hóa dữ liệu 3d bằng mapserver không? Các tệp 3D .shp nằm trong cơ sở dữ liệu postgis và tôi đã kết nối máy chủ maps với cơ sở dữ liệu, nhưng với lớp đơn giản trong mapfile.
Câu trả lời:
Một cách để đi có thể là để PostGIS thực hiện phép chiếu 3D. Tôi đã thực hiện một số thử nghiệm đơn giản vài tháng trước để hình dung các hàm khoảng cách 3D sắp tới như ST_3DShortestLine.
Những gì tôi đã làm chỉ là sử dụng ST_RotateX, ST_RotateY và ST_RotateZ để làm cho hình học 3D "hiển thị nhiều hơn phần trên của máy ảnh".
Thanh lịch và hiệu quả hơn sẽ là thực hiện tất cả các biến đổi với ST_Affine.
Với việc sử dụng nâng cao chức năng đó, tôi đoán cũng có thể có được chế độ xem 3D phối cảnh.
Vấn đề theo như tôi đã thử, đó là nó chỉ xoay mọi thứ xung quanh origo. Nhưng cũng nên có thể giải quyết.
Theo cách này, bạn phải làm cho MapServer hiển thị dữ liệu của mình một cách trực quan như 3D nhưng MapServer chỉ nhìn thấy hình dạng 2D phẳng.
Nếu ai đó thành công với điều này, tôi quan tâm. Tôi đã nghĩ về việc tạo một chức năng 3D giả theo cách này trong postgisonline.org. Nhưng tôi không có kiến thức và thời gian để tìm ra cách biến đổi nên được thực hiện với ST_Affine để vừa mang lại cái nhìn phối cảnh vừa xoay quanh trung tâm của bản đồ thay vì xoay quanh origo.
/ Nicklas
MapServer sẽ không làm gì cho bạn. Bạn sẽ phải nâng cấp lên phiên bản mới nhất để thậm chí có cơ hội, vì các phiên bản trước chỉ tước đi chiều thứ 3 trong truy vấn cơ sở dữ liệu. Đặt cược tốt nhất của bạn có thể là dùng thử GeoServer và hỗ trợ KML ở đó và xem bạn có thể hình dung trong Google Earth không. Hoặc thất bại, hãy viết một đoạn mã PHP nhỏ để lấy dữ liệu của bạn ra khỏi PostGIS với hàm ST_AsKML () và thực hiện một số kiểu dáng trên đó. Không có phép thuật mặc dù!
Bạn có thể hiển thị bản đồ đo độ cao của mình dưới dạng Hillshade và sau đó phủ lên các đường 3D để bạn chỉ nhìn thấy dữ liệu 2D. Nếu bạn muốn đi xa hơn, bạn có thể sử dụng phần mềm kết xuất 3D để chiếu bóng từ các đường 3D lên bản đồ đo độ cao, điều này sẽ giúp tạo ảo giác về chiều cao cho các đường của bạn. Nhưng bản thân Mapserver sẽ không thực sự hiển thị mọi thứ trong 3D