Moja organizacja ma aplikację internetową do wyświetlania globalnych i regionalnych danych klimatycznych i rozważamy ich ulepszenie. Naszym wiodącym pomysłem jest stworzenie aplikacji opartej na OpenLayers do wyświetlania rastrów klimatycznych na warstwach podstawowych, takich jak OSM lub Google Maps. Mapa może również zawierać inne warstwy wektorowe specyficzne dla aplikacji oraz pasek kolorów lub inne funkcje legendy opisujące dane. O ile wiem, to wszystko wydaje się możliwe w przypadku OpenLayers.
Jednak jednym z wymagań projektu jest możliwość eksportu ( najlepiej z aplikacji internetowej) map jakości publikacji (mniej więcej). Typowy przypadek użycia byłby mniej więcej taki:
- Użytkownik, korzystając z warstwy podstawowej jako przewodnika, przechodzi do swojego obszaru zainteresowania
- Użytkownik wybiera parametr klimatu (np. Średnią temperaturę dla lat 2040) lub zestaw parametrów
- Użytkownik naciska przycisk „eksportuj”, a następnie pobiera mapę dobrej jakości, która zawiera wszystkie elementy opisane w pierwszym akapicie.
Nie udało mi się znaleźć niczego w OpenLayers na temat renderowania obrazu. Czy ktoś wie, czy jest to możliwe? A jeśli nie, jakie inne metody renderowania moglibyśmy zastosować? Przypuszczam, że musielibyśmy przekazać wszystkie parametry mapy (bbox, rzutowanie, zawarte warstwy itp.) Do jakiegoś zewnętrznego silnika renderującego; jakie są dostępne silniki renderujące typu open source?
źródło
Odpowiedzi:
Główne sposoby wyświetlania ładnych map drukowania z Openlayers, które znam:
-Geoserver z Geoextem
-Mapfish z Geoextem
Oba rozwiązania opierają się na części Java (np. Http://geoserver.org/display/GEOS/Printing+in+GeoServer lub http://www.mapfish.org/doc/print/ )
-Openlayers standalone (patrz oficjalny dokument http://trac.openlayers.org/wiki/Printing )
Ostatnio wydaje się, że technika renderowania obrazu za pomocą PhantomJS (oprogramowanie symulujące przeglądarkę z wiersza poleceń) http://acuriousanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-using-phantomjs/
Niektóre najnowsze biblioteki używają przeglądarki do renderowania na płótnie, aby „złapać” obraz, tak jak w tym przykładzie OpenLayers 3 lub niniejszej Ulotki
źródło
Myślisz, że będziesz musiał zajrzeć do Geoserver, aby utworzyć usługę WFS lub WMS lub WMST http://geoserver.org/display/GEOS/What+is+Geoserver
Następnie Openlayers może przeanalizować usługę Geoserver
http://openlayers.org/dev/examples/getfeature-wfs.html
WMTS (usługa kafelkowa map internetowych) http://openlayers.org/dev/examples/wmts.html
źródło
Aby uzyskać „jakość publikacji”, potrzebujesz 300dpi, więc korzystanie z map, które przekazujesz do otwierania warstw do renderowania ekranu, prawdopodobnie nie jest początkowe.
Karta eksportu OpenStreetMap używa OpenLayers do wybrania tego, co chcesz wyeksportować, ale następnie renderuje to z oddzielnym procesem serwera zaplecza (właściwie kilka z nich). Jest to prawdopodobnie podejście, które trzeba będzie zastosować. Jest mało prawdopodobne, aby móc w tym celu korzystać z Map Google.
źródło