Kartenausschnitt drucken

Hallo,

für ein Projekt wird ein Kartenausschnitt mittels Openlayers im Browser mit zugehörigem Marker angezeigt, nun muss dieser Ausschnitt aber als PDF oder wenigsten Bilddatei druckbar sein. Hat jemand vielleicht einen Tip wie dies zu bewerkstelligen ist, Mapfish kann ich leider nicht benutzen und ebenso wenig Kommandozeilen Tools. Es soll möglichst nur mit PHP, JavaScript und Html umsetzbar sein.

Nahmd,

Mal Butter bei die Fische: was für ein Projekt? Gewerblich? Gemeinnützig?

Gruß Wolf

Hallo,

hilft Dir vielleicht das Wiki weiter?

“Kartendarstellung als PDF erzeugen bzw. ausdrucken” auf der Wiki-Seite “OpenStreetMap benutzen”:
http://wiki.openstreetmap.org/wiki/DE:OpenStreetMap_benutzen#Kartendarstellung_als_PDF_erzeugen_bzw._ausdrucken

Gruß,
FR²

Hallo,

also dabei handelt es sich um ein gewerbliches Projekt, aus diesem Grund kann auch nicht auf Dienste wie Mapfish zurückgegriffen werden. Das Wiki hilft leider nicht wirklich, weil im Browser zwingend eine dynamische Karte erstellt werden muss, dieser Ausschnitt muss dann später über einen Button als PDF gedruckt werden. Ich arbeite zurzeit mit dem Beispiel von http://trac.osgeo.org/openlayers/wiki/TileStitchingPrinting und dem Verfahren TileStithingPrinting. Dies läuft soweit das er mir die Dynamische Karte als statisches JPG speichert. Leider zur Zeit noch mit Fehlermeldung, aber das JPG der Karte wird schon mal erzeugt. Nur leider werden die auf der Karte erzeugten Layer, wie Marker oder Polyline nicht mitgespeichert.

Gruß Cloud

http://osgeo-org.1560.x6.nabble.com/How-to-print-map-area-with-openlayers-td3918307.html kann dir helfen, da steht wie andere das machen.
Scheint aber immer ein mix aus Client und Server zu sein. Also auf dem Client die sichtbaren Features im Overlay extrahieren, zum Server schicken, der Server malt dann auf das gestitchte Bild die Overlays drüber (mit gd oder PIL oder sonstwie).

Mal reingedacht:

Der Server “kennt” die Dimensionen des Browserfensters und den Inhalt aller Overlays, die auf dem Client angezeigt werden, falls sie von ihm kommen.
Wenn er das Kartenlayer (Background) selber liefert, kennt er auch das.

Wenn die Webseite ein einziges externes Kartenlayer anbietet, ist das auch bekannt.

Sind es mehrere Kartenlayer zur Auswahl, könnte Openlayers mit einem Event für den Layer-Switcher dem Server den gerade ausgewählten Background melden. Dann wäre auch das klar.

Somit “kennt” der Server aktiven Hintergrund, Ausschnitt und aktivierte Overlays und daraus kann er natürlich “irgendwie” eine Grafik oder ein PDF erzeugen.

Für Leaflet sollte das eigentlich auch gehen.

Gruss
walter

…und selbst wenn nicht kann man beim Klick auf den “Drucken”-Button die im Client sichtbaren Features an den Server schicken. Dann kennt der Server die auch.

8<

Für eine Übersicht aller bekannten Möglichkeiten auch bei http://help.openstreetmap.org nach “print” oder “paper” suchen … da gibt es hunderte Tipps zu.

Guck mal hier: http://html2canvas.hertzen.com/

Wird auch in Overpass Turbo für den PNG Export genutzt (dort habe ich den Link wieder gefunden).

Wie die Overpass turbo-Seite das anspricht siehst du ab hier: https://github.com/tyrasd/overpass-ide/blob/master/js/ide.js#L1449

edit: danke für den Hinweis; so lernt man dazu!

Für Canvas siehe auch:
http://openlayers.org/en/v3.0.0/examples/export-map.html
https://github.com/mapbox/leaflet-image