You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2012-03-15 22:06:59

Jayjay01
Member
Registered: 2011-04-24
Posts: 197

OSM Download als svg?

Hey, früher konnte man ja bei http://www.flosm.de/ kostenlos die kartendaten als verktordatei runterladen.
Dieser Service wird jetzt dort wohl nur noch per Bezahlung angeboten.

Gibt es eine Alternative, wo man die Karten schnell und umsonst als Vektordaten downloaden kann?

Offline

#2 2012-03-15 22:52:14

woodpeck
Member
Registered: 2009-12-02
Posts: 1,210

Re: OSM Download als svg?

SVG-Download geht grundsätzlich auch bei www.openstreetmap.org im "Export"-Tab. Die SVGs lassen sich mit Inkscape oder rsvg zu hochauflösenden Bitmaps verarbeiten, sind aber für die Nachbearbeitung in Inkscape nur beschränkt (und für die Nachbearbeitung in Illustrator überhaupt nicht) geeignet.

Ansonsten der etwas aufwendigere, aber auch kostenlose Schritt: "Maperitive" installieren, Daten von download.geofabrik.de besorgen (bei Bedarf Bereich ausschneiden mit geeignetem Tool) und dann in Maperitive als SVG ausgeben lassen. Dort können auch SVGs produziert werden, die sehr gut im AI bearbeitbar sind.

Offline

#3 2012-03-16 10:46:37

kellerma
Member
Registered: 2010-07-18
Posts: 1,623

Re: OSM Download als svg?

woodpeck wrote:

"Maperitive" installieren.

Und ein freies ("free" as in “free speech” not as in “free beer”) tool geht nicht?

Offline

#4 2012-03-16 11:28:01

brogo
Member
From: 54,11 +-1°
Registered: 2009-06-02
Posts: 553

Re: OSM Download als svg?

kellerma wrote:
woodpeck wrote:

"Maperitive" installieren.

Und ein freies ("free" as in “free speech” not as in “free beer”) tool geht nicht?

Natürlich: Du mußt nur PostgreSQL, PostGIS, Python, osm2pgsql und Mapnik installieren, alles konfigurieren, Daten in die Datenbank importieren und schwupps hast Du nach wenigen Stunden/Tagen Dein fertiges SVG.

Irgendwie erscheint mir da die Lösung mit Maperitive doch ETWAS einfacher, wenn man nur ein paar SVGs braucht.

Christian

Offline

#5 2012-03-16 11:51:41

#DWD*
Member
From: Germany
Registered: 2008-06-10
Posts: 124
Website

Re: OSM Download als svg?

Hochschulen und gemeinnützige Vereine können weiterhin kostenlos SVG-Dateien für Illustrator herunterladen. Einige Hochschulen nutzen das schon - bitte meldet Euch dazu bei der hier angegebenen Rufnummer http://www.stepmap.de/123stepmap.php
Detlev

Offline

#6 2012-03-16 12:02:21

Eberth
Member
Registered: 2010-03-21
Posts: 209

Re: OSM Download als svg?

Ich habe auf beide beschriebenen Arten (direkt von www.openstreetmap.org als svg exportieren und mit maperitive svg erstellen) schon svg-Dateien erstellt und dann mit Inkscape weiter bearbeitet. Übrigens kann man in maperitive jetzt die osm-Roh-Daten direkt via Internet importieren.

Die Bearbeitung der mit maperitive erzeugten svg-Dateien hat den Nachteil, dass die Wege (Pfade) in der zugrunde liegenden xml-Datei irgendwie in Gruppen zusammengefasst sind und dann die Knoten nicht mehr verschoben werden können. Das sind aber keine "Gruppen" im Sinne einer Objekt-Gruppierung von Inkscape, die man dann ja aufheben könnte. Bei geschlossenen Wegen (also den Rändern von Flächen) ist das anders. Hier kann man wie gewohnt die Pfade bearbeiten.

Beim Export einer svg-Datei direkt aus www.openstreetmap.org sind die Wege als Pfade bearbeitbar. Dafür muss man dann aber den vorgegebenen Stil der Karte übernehmen. Bei maperitive kann ich den Stil in einer rules-Datei anpassen.

Die Ergebnisse meiner Arbeiten sind auf http://wiki.openstreetmap.org/wiki/Montabaur zu sehen.

Thomas

Offline

#7 2012-03-16 19:39:00

kellerma
Member
Registered: 2010-07-18
Posts: 1,623

Re: OSM Download als svg?

brogo wrote:
kellerma wrote:
woodpeck wrote:

"Maperitive" installieren.

Und ein freies ("free" as in “free speech” not as in “free beer”) tool geht nicht?

Natürlich: Du mußt nur PostgreSQL, PostGIS, Python, osm2pgsql und Mapnik installieren, alles konfigurieren, Daten in die Datenbank importieren und schwupps hast Du nach wenigen Stunden/Tagen Dein fertiges SVG.

Für Deine 5 Programme (samt Abhängigkeiten) benötige ich auf meinem Debian nur einen Befehl:

apt-get install gis-workstation

(folgendes hab' ich an dieser, glaube ich, schon mal erzählt:)
Es gibt bei Debian ein sub-projekt ("Pure Blend" fuer Insider wink namens Debian-GIS.
Leider stammen jene Leute eher aus der "grass-Ecke" und haben osm erst relativ spät "entdeckt".
Ansonsten wäre die Integration vielleicht schon weiter fortgeschritten ...

Offline

#8 2012-03-17 11:18:44

stephan75
Member
Registered: 2008-05-28
Posts: 2,918

Re: OSM Download als svg?

Und was ist mit dieser Zusammenstellung?

http://wiki.openstreetmap.org/wiki/SVG

veraltet?

Offline

#9 2012-08-11 16:59:35

fkv
Member
From: Wien
Registered: 2010-08-12
Posts: 772
Website

Re: OSM Download als svg?

stephan75 wrote:

Und was ist mit dieser Zusammenstellung?

http://wiki.openstreetmap.org/wiki/SVG

veraltet?

Ja, veraltet. Der Link zu "cloudmade's vector map API" stimmt nicht mehr. Das wär halt genau das, was ich brauche. Kein Pseudo-Screenshot von einer blöden Mapnik-Karte, sondern die blanken, unzensierten Linien und Punkte, die ich dann in Inkscape stylen und beschriften kann.

Maperative funktioniert bei mir leider nicht. Am liebsten wär mir ein Commandline-Utility wie:

$ gpsbabel -i GPX -o SVG karte.gpx karte.svg
Output type 'SVG' not recognized
$

...wenn es den Dateityp kennen würde.

Last edited by fkv (2012-08-11 16:59:47)

Offline

#10 2012-08-16 08:57:47

fkv
Member
From: Wien
Registered: 2010-08-12
Posts: 772
Website

Re: OSM Download als svg?

Inzwischen hab ich selber ein Script dafür geschrieben. Es gibt zwar noch viel zu verbessern, aber zumindest ist mal was da, worauf man aufbauen kann. Da kommt richtig die Lust, einen Renderer drauf aufzusetzen.

#!/usr/bin/perl
# (c) Friedrich Volkmann 2012

use strict;
use LWP::Simple;
use Math::Trig ':pi';

sub usage {
        print "usage: $0: left right bottom top outfile\n";
        exit 1;
}

my $left = shift @ARGV;
usage() unless $left =~ /^\d+(?:\.\d*)?$/;
my $right = shift @ARGV;
usage() unless $right =~ /^\d+(?:\.\d*)?$/;
my $bottom = shift @ARGV;
usage() unless $bottom =~ /^\d+(?:\.\d*)?$/;
my $top = shift @ARGV;
usage() unless $top =~ /^\d+(?:\.\d*)?$/;
my $outfile = shift @ARGV;
usage() unless $outfile;

my $med_y = ($top + $bottom) / 2;
my $ratio = cos ($med_y * pi / 180);
my ($tot_x,$tot_y);
if ($right - $left > $top - $bottom) {
        $tot_x = 1000;
        $tot_y = ($top - $bottom) / ($right - $left) * 1000;
} else {
        $tot_y = 1000;
        $tot_x = ($right - $left) / ($top - $bottom) * 1000;
}
sub transform_x {
        my $x = $_[0];
        return ($x - $left) * $ratio * $tot_x / ($right - $left);
}

sub transform_y {
        my $y = $_[0];
        return ($top - $y) * $tot_y / ($top - $bottom);
}

my $osm = get("http://www.openstreetmap.org/api/0.6/map?bbox=$left,$bottom,$right,$top");
#print $osm;

exit unless $osm;
my @lines = split /\n/, $osm;
my %nodes;
my @ways;
for (@lines) {
        if (/^\s*<node id="(\d+)" lat="(\d*(?:\.\d*)?)" lon="(\d*(?:\.\d*)?)"/) {
                $nodes{$1} = {x => $3, y => $2};
        } elsif (/^\s*<way /) {
                push @ways, [];
        } elsif (/^\s*<nd ref="(\d+)"/) {
                push @{$ways[$#ways]}, {x => $nodes{$1}->{x}, y => $nodes{$1}->{y}};
                $nodes{$1}->{in_a_way} = 1;
        }
}
open SVG, ">$outfile" or die "could not open $outfile for writing";
print SVG "<?xml version='1.0' standalone='no'?>\n";
print SVG "<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>\n";
print SVG "<svg width='$tot_x' height='$tot_y' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>\n";
print SVG "  <title>OSM export</title>\n";

for (@ways) {
        print SVG '<polyline fill="none" stroke="blue" stroke-width=".5" points="';
        print SVG transform_x($_->{x}) . ", " . transform_y($_->{y}) . " " for @$_;
        print SVG '"/>' . "\n";
}
for (values %nodes) {
        next if $_->{in_a_way};
        print SVG '<circle fill="red" cx="' . transform_x($_->{x}) . '" cy="' . transform_y($_->{y}) . '" r=".5" />' . "\n";
}

print SVG "</svg>\n";
close SVG;

Offline

Board footer

Powered by FluxBB