Ich entwickle gerade eine WebGIS-Anwendung mit GeoServer (2.1.1), GeoWebCache (1.2.6), OpenLayers (2.11), GeoExt. Alle meine Schichten werden als WMS durch GeoWebCache bedient. Eine Beispieldefinition für jede Schicht ist wie folgt:Wie wird das MapFish-Druckmodul für den GeoServer-GeoWebCache-Layer verwendet?
var My_Layer = new OpenLayers.Layer.WMS("My_Layer",
"http://my-ip + my-port/geoserver/gwc/service/wms",
{layers: 'layer-name',transparent: "true",format: "image/png",
tileSize: new OpenLayers.Size(256,256),
tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom },
{ isBaseLayer: false, visibility:false});
Alles funktioniert gut, bis zu diesem Punkt. Aber, als ich vorhatte, ein bisschen voran zu gehen und versuchte, MapFish Druckmodul ...... zu implementieren, ist das ausgegebene pdf leer !!! Ich erhalte die folgende Fehlermeldung:
java.io.IOException: Fehler (status = 400), während die Bildlese von ........
Ich habe gesucht ein Menge. Gemäß this besteht eine Möglichkeit darin, auf meine Layer als TMS-Layer zuzugreifen. Aber ich möchte keine statische Bildschicht, sondern eine GeoServer WMS-Kartenebene.
Wieder eine andere Option gefunden here verwendet OpenLayers.Control.ExportMap(). Aber das beschränkt die Verwendung anderer Maßstäbe, da mein Datenumfang zu groß ist. Als Ergebnis in einem bestimmten Maßstab, wenn der Benutzer einen Ausdruck des gesamten Kartenbereichs (möglicherweise in einem A0-Papier) machen möchte, der nicht vollständig im Divisor Openlayers sichtbar ist, kann dies den Zweck nicht lösen.
Die Frage ist also, wie kann ich dies erreichen, ohne einen TMS oder GeoWebCache-Layer zu verwenden?
Bearbeiten # 1: Sorry, ich bin zu spät, da ich nicht im Büro war. Im Folgenden finden Sie meine Datei config.yaml. Ich habe den Eindruck, dass es keinen Fehler gibt. Dadurch können meine WMS-Layer gedruckt werden, die direkt von GeoServer kommen.
dpis: [75, 150, 300]
outputFormats:
- pdf
scales:
- 10000
- 25000
- 50000
- 100000
hosts:
- !localMatch
dummy: true
- !ipMatch
ip: www.camptocamp.org
- !dnsMatch
host: labs.metacarta.com
port: 80
- !dnsMatch
host: terraservice.net
port: 80
- !dnsMatch
host: sigma.openplans.org
- !dnsMatch
host: demo.mapfish.org
layouts:
A4 portrait:
metaData:
title: 'Arunava TopoMap PDF'
author: 'Arunava print module'
subject: 'Map layout'
keywords: 'map,print'
creator: 'Arunava'
mainPage:
pageSize: A4
rotation: true
items:
- !text
text: '${mapTitle} ${now MM.dd.yyyy}'
fontSize: 20
spacingAfter: 30
- !map
spacingAfter: 30
width: 440
height: 600
- !scalebar
type: bar
maxSize: 100
barBgColor: white
fontSize: 8
align: right
- !text
font: Helvetica
fontSize: 9
align: right
text: '1:${scale}'
footer: *commonFooter
A2 portrait:
metaData:
title: 'Arunava TopoMap PDF'
author: 'Arunava print module'
subject: 'Map layout'
keywords: 'map,print'
creator: 'Arunava'
mainPage:
pageSize: A2
rotation: true
items:
- !text
text: '${mapTitle} ${now MM.dd.yyyy}'
fontSize: 20
spacingAfter: 30
- !map
spacingAfter: 30
width: 880
height: 1200
- !scalebar
type: bar
maxSize: 100
barBgColor: white
fontSize: 8
align: right
- !text
font: Helvetica
fontSize: 9
align: right
text: '1:${scale}'
footer: *commonFooter
ist mapfish korrekt konfiguriert? kannst du config.yaml posten? – igorti