Organisasi saya memiliki aplikasi web untuk menampilkan data iklim global dan regional dan kami sedang mempertimbangkan peningkatannya. Gagasan utama kami adalah membuat aplikasi berbasis OpenLayers untuk menampilkan raster iklim di atas lapisan dasar seperti OSM atau Google Maps. Peta juga dapat mencakup beberapa lapisan vektor khusus aplikasi dan bilah warna atau fitur legenda lainnya yang menjelaskan data. Sedekat yang saya tahu, ini semua bisa dilakukan dengan OpenLayers.
Salah satu persyaratan untuk proyek ini adalah untuk dapat mengekspor ( idealnya dari aplikasi web) kualitas publikasi (lebih atau kurang) peta. Kasus penggunaan tipikal adalah seperti ini:
- Seorang pengguna, menggunakan lapisan dasar sebagai panduan, menavigasi ke bidang yang mereka minati
- Pengguna memilih parameter iklim (misalnya temp rata-rata untuk tahun 2040-an) atau set parameter
- Pengguna menekan tombol "ekspor" dan kemudian mengunduh peta berkualitas baik yang mencakup semua elemen yang dijelaskan dalam paragraf pertama.
Saya belum dapat menemukan apa pun di OpenLayers tentang rendering ke suatu gambar. Adakah yang tahu apakah ini mungkin? Dan jika tidak, apa pendekatan rendering lain yang bisa kita ambil? Saya kira kita perlu melewati semua parameter peta (bbox, proyeksi, termasuk layer, dll.) Ke beberapa mesin rendering eksternal; mesin rendering open source apa yang ada di luar sana?
sumber
Jawaban:
Cara utama untuk menampilkan peta cetak cantik dari openlayers yang saya tahu adalah:
-Geoserver dengan Geoext
-Mapfish dengan Geoext
Kedua solusi bergantung pada bagian java (mis. Http://geoserver.org/display/GEOS/Printing+in+GeoServer atau http://www.mapfish.org/doc/print/ )
-Openlayers standalone (Lihat dokumen resmi http://trac.openlayers.org/wiki/Printing )
Baru-baru ini, sebuah teknik muncul untuk membuat gambar dengan PhantomJS (sebuah peranti lunak yang mensimulasikan peramban dari baris perintah) http://acuriousanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-using-phantomjs/
Beberapa perpustakaan terbaru menggunakan kemampuan rendering Canvas browser untuk "menangkap" gambar seperti contoh OpenLayers 3 ini atau yang Leaflet ini
sumber
Berpikir Anda perlu melihat ke Geoserver untuk membuat layanan WFS atau WMS atau WMST http://geoserver.org/display/GEOS/What+is+Geoserver
Kemudian Openlayers dapat mem-parsing layanan Geoserver
http://openlayers.org/dev/examples/getfeature-wfs.html
WMTS (Web Tile Service) http://openlayers.org/dev/examples/wmts.html
sumber
Untuk mendapatkan "kualitas publikasi" yang Anda inginkan 300dpi, jadi menggunakan peta yang Anda lewati untuk membuka layer untuk rendering layar mungkin bukan starter.
Tab ekspor OpenStreetMap menggunakan OpenLayers untuk memilih apa yang ingin Anda ekspor, tetapi kemudian merendernya dengan proses server backend yang terpisah (sebenarnya beberapa pilihan). Ini mungkin pendekatan yang harus Anda ambil. Anda tidak mungkin dapat menggunakan Google Maps untuk ini.
sumber