Maperitive: SVG-Export mit festen Maßstab

Hallo!

Ich möchte einen bestimmten Bereich mit Maperitive so rendern, daß ich den Bereich ungefähr (vielleicht als Mittelpunkt) und einen festen Maßstab (z.B. 1:5000) vorgebe. Das Ergebnis (SVG) soll dann ein A3-Blatt (quer) füllen.

Leider komme ich mit den bounds-, set-paper-und export-Funktionen durcheinander, da sie ja sich ja teilweise gegenseitig beeinflussen.

Christian

Hallo Christian,

ich schreib mal kurz auf wie ich das mache (ohne comand-line):

  1. osm Datei laden
  2. rendering rules laden
  3. map > set printing bounds
  4. etwas raus zoomen
  5. mit dem Courser auf die Printing Bounds linie (blau gestrichelt)
  6. Rechts Klick und “Porperties” auswählen
  7. Im Propertie Fenster: Main > Fix Paper > True
  8. Im Propertie Fenster: Paper > Orientation > Landscape
  9. Im Propertie Fenster: Paper > Paper Type > A3
    10a. Entweder die Printing Bounds zurecht rücken (im Hauptfenster) oder
    10b. die im Propertie Fenster: Position > Map Scale festsetzen. Beides Geht nicht, wenn der ausdruck A3 sein soll.
  10. Tools > Export to SVG. Maperitive wählt dann eine passende Zoomstufe

Gruß Hubert

Ich möchte das Ganze aber gerne als Script machen, da ich dann das Ganze wiederholen kann, wenn ich die Karte aktualisieren will. Dann brauche ich die anderen Layer in Inkscape nicht zu ändern.

Außerdem fehlt mir noch der von mir vorgegebene Maßstab.

Ich hatte das irgendwie schon mal fertig und wollte die Ursprungskarte aktualisieren. Leider war aber ausgerechnet dieses Arbeitsverzeichnis nicht in meiner Datensicherung drin. :frowning:

Christian

Siehe Schritt 10b

Was ich noch gefunden habe sind die Befehle
set-paper type=A3 orientaion=landscape
set-print-bounds-paper center=<x,y> map-scale=50000
eventuell muss man dann bei exportiern die map-scale nochmals angeben, da bin ich mir aber nicht sicher, aber sicher ist sicher.
export-svg map-scale=50000 compatibility=inkscape

Ich hoffe das Hilft etwas weiter.

Edit:Quote

Ja, Danke! Hat geklappt. Den Trick mit dem Properties-Fenster kannte ich noch nicht. So konnte ich mir den Bereich interaktiv zurechtrücken, und dann den Map-Center-Wert aus dem Fenster in mein Skript übernehmen. So sieht das aus:

Ha, wenn wir jetzt mal wieder das Verzeichnis abhanden kommt, schaue ich einfach hier im Forum nach. :wink:

P.S. Gerade noch mal nachgemessen: 1:5000 stimmt nicht. Der Maßstab ist in Inkscape 22,787 mm lang; das wären dann 113,94 Meter, anstatt 100 Meter.

Hallo,

da ich ein ähnliches Problem hatte, bin ich auf diesen Thread gestoßen und auch mir ist aufgefallen, dass der Maßstab nicht stimmt.
Ein Versuch mit unterschiedlichen Ausgabemaßstäben hat ergeben, dass der Maßstab immer um den Faktor 1,4 falsch ist. D.h. von Maperitive behauptete 1:4000 sind in Wirklichkeit 1:2857,142857142857 - 1:5000 sind 1:3571,428571428571 usw. Ist das einfach ein unlösbarer Bug, oder kennt jemand zufällig eine Methode die den Maßstab richtig ausgibt?

Bekanntes Problem: https://groups.google.com/forum/#!topic/maperitive/8UyRqsTOuYI
Wie man das innerhalb von Maperitive hinbekommt kann ich dir nicht sagen.
Eventuell kann man anstatt den Maßstab, einfach die entsprechende Bounds und DPI angeben. (Hab ich aber noch nicht ausprobiert.)
Als WorkAround lade ich mir die svg in Inkscape und passe mir dort die Document Properities an.

Ahh danke da hatte ich noch gar nicht geschaut…

Hab mir jetzt beholfen indem ich an den export-command noch “scale=0.7142857142857143” angehängt habe.

Nachdem ich den Bug Thread aus deinem Link durchgelesen hab, scheint mir auch klar zu sein, woher der Faktor kommt: maperitive ist default auf 100ppi eingestellt, beim export geht das Programm aber scheinbar immer von 72ppi aus (warum das bei den Vektorexporten überhaupt eine Rolle spielt wäre eine andere Frage…). Wenn das stimmt wäre der Faktor also genaugenommen 100/72 = 1,388888888888889 bzw. andersrum 72/100 = 0,72.

Also “scale=0.72” sollte dann passen.