Kết xuất hình ảnh trong OpenLayers?


11

Tổ chức của tôi có một ứng dụng web để hiển thị dữ liệu khí hậu toàn cầu và khu vực và chúng tôi đang xem xét các cải tiến cho nó. Ý tưởng hàng đầu của chúng tôi là tạo ra một ứng dụng dựa trên OpenLayers để hiển thị các trình quét khí hậu trên các lớp cơ sở như OSM hoặc Google Maps. Bản đồ cũng có thể bao gồm một số lớp vectơ dành riêng cho ứng dụng khác và thanh màu hoặc các tính năng chú giải khác mô tả dữ liệu. Gần như tôi có thể nói, tất cả điều này dường như có thể làm được với OpenLayers.

Tuy nhiên, một yêu cầu cho dự án là có thể xuất các bản đồ chất lượng xuất bản ( lý tưởng từ ứng dụng web) (nhiều hơn hoặc ít hơn). Một trường hợp sử dụng điển hình sẽ là một cái gì đó như thế này:

  1. Một người dùng, sử dụng lớp cơ sở làm hướng dẫn, điều hướng đến khu vực họ quan tâm
  2. Người dùng chọn một tham số khí hậu (ví dụ: temp trung bình cho những năm 2040) hoặc bộ thông số
  3. Người dùng nhấn nút "xuất" và sau đó tải xuống bản đồ chất lượng tốt bao gồm tất cả các yếu tố được mô tả trong đoạn đầu tiên.

Tôi chưa thể tìm thấy bất cứ điều gì trong OpenLayers về kết xuất thành hình ảnh. Có ai biết liệu điều này là có thể? Và nếu không những cách tiếp cận khác để kết xuất chúng ta có thể thực hiện? Tôi cho rằng chúng ta sẽ cần chuyển tất cả các tham số bản đồ (bbox, phép chiếu, các lớp được bao gồm, v.v.) cho một số công cụ kết xuất bên ngoài; những công cụ kết xuất nguồn mở nào đang tồn tại?


Tôi đã triển khai xuất dưới dạng png / pdf và in bản đồ openlayers tại đây tại www.mapsdata.co. bạn có thể đăng ký và kiểm tra.
Rayiez

Câu trả lời:


12

Các cách chính để hiển thị bản đồ in đẹp từ các lớp mở tôi biết là:

-Geoserver với Geoext

-Mapfish với Geoext

Cả hai giải pháp đều dựa vào một phần java (ví dụ: http://geoserver.org/display/GEOS/Printing+in+GeoServer hoặc http://www.mapfish.org/doc/print/ )

-Openlayers độc lập (Xem tài liệu chính thức http://trac.openlayers.org/wiki/Printing )

Gần đây, một kỹ thuật xuất hiện để hiển thị hình ảnh với PhantomJS (một phần mềm mô phỏng trình duyệt từ dòng lệnh) http://acquilanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-USE-ph Phantomjs /

Một số thư viện gần đây sử dụng khả năng kết xuất Canvas của trình duyệt để "bắt" hình ảnh như ví dụ OpenLayers 3 này hoặc tờ rơi này



2

Để có được "chất lượng xuất bản", bạn muốn 300dpi, vì vậy sử dụng các bản đồ bạn vượt qua để mở các lớp để hiển thị màn hình có lẽ không phải là khởi đầu.

Tab xuất của OpenStreetMap sử dụng OpenLayers để chọn những gì bạn muốn xuất, nhưng sau đó kết xuất nó với một quy trình máy chủ phụ trợ riêng biệt (thực sự là một lựa chọn của một số). Đây có lẽ là cách tiếp cận bạn sẽ phải thực hiện. Bạn không thể sử dụng Google Maps cho việc này.


Chà, "chất lượng xuất bản" nhiều khả năng có nghĩa là svg hoặc một số định dạng vector khác. Và khi tôi đặt nó trong các điều khoản đó, nó khiến tôi nghĩ rằng, vâng, có lẽ chúng tôi sẽ muốn sử dụng Mapnik hoặc một cái gì đó để hiển thị một bản đồ cơ sở từ tệp hành tinh.osm. Sau đó, chúng ta có thể sử dụng một số thư viện hình ảnh để phủ lên các yếu tố khác (raster khí hậu, yếu tố huyền thoại, thuộc tính). Bạn nói đúng rằng Gmaps có thể dành cho nhà xuất khẩu (vì nhiều lý do kỹ thuật và phi kỹ thuật). Dù sao, cảm ơn cho tất cả các câu trả lời.
Hiebert
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.