Karte von Hamburg in Website einbinden

Hallo,

ich bin hier langsam am verzweifeln :frowning:
ich versuche die Karte von Hamburg in eine Webseite einzubinden, allerdings will das nicht klappen

ich habe folgenden Beispielcode aus dem OSM wiki genommen:

OpenLayers Demo html, body, #map { width: 100%; height: 100%; margin: 0; }

wenn ich jetzt die Datei “OpenStreetMap.js” einbinde, dann bekomme ich ein Bild, allerdings ist dann die ganze Welt zu sehen beim Rauszoomen. Wenn ich diese datei nicht einbinde dann bekomme ich nur einen Weissen Hintergrund angezeigt.

Wie bekomme ich es nun hin, auf die Datei hamburg.osm zuzugreifen ?

wĂ€re sehr dankbar fĂŒr ein paar hilfreiche antworten!

Hi oneandonlycore, erst mal noch ein herzlich Willkommen :slight_smile:

Von wo aus dem Wiki hast du denn den Code genommen?
Ich glaube du bringst da ein paar Dinge noch durcheinander.

Es gibt OpenLayers (was du nutzt), eine Javascript Bibliothek, mir der du Kartenkacheln, WMS Karten-Streams oder einzelne Vektordateien anzeigen kannst.
Auf der anderen Seite gibt es die .OSM XML Dateien, die die Daten von OSM enthalten, aber diese können dort nicht direkt angezeigt werden.

Was möchtest du denn machen? Eine eigene Karte (eigener Style und Server) von Hamburg anbieten oder einfach verhindern, dass man aus Hamburg rausszoomt?

Die umwandlung von Hamburg.osm in 256x256 große tiles nimmt dir openlayers leider nicht ab ;-(

DafĂŒr musst du vorab mapnik, maperitive oder kosmos bemĂŒhen.

Gruß,
ajoessen

Hallo,

also den Code habe ich aus diesem Wiki:
http://wiki.openstreetmap.org/wiki/DE:OpenLayers_Simple_Example

mein vorhaben ist, nur Hamburg angezeigt zu bekommen um dort statische Markierungen zu machen. Das Ganze soll auf einem eigenen Server sein, damit ich mehr oder weniger unabhÀngig von den OSM Servern bin

geht dass denn nicht mit open layers ? wie/ mit was kann ich denn sowas realisieren ?

MfG

Das geht schon (und ist auch gut so). Du musst halt nur die Kacheln (Tiles) einmalig selber aus der Hamburg.osm erzeugen.

Anleitungen fĂŒr Windows gibts hier:
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Postgis
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Mapnik

Gruß,
ajoessen

Na wenn er die Tiles nur einmal zieht sollte ein Downloaden von einem der TileServer doch erlaubt sein
 :wink:
Hamburg ist ja nicht sooo groß.

ich finde, dass fĂŒr das einmalige erzeugen von Tiles fĂŒr Hamburg die Nutzung von Postgres und Mapnik der Overkill ist. Wenn man es nicht direkt von den OSM Servern ziehen will
In Maperitive sind das 3 Befehle (clear-map, load-source, generate-tiles)

@Chris
was sollen solche Hinweise? :frowning: Wenn wir schon selber dazu anstiften, gegen die Tile-Server-Regeln zu verstoßen, mĂŒssen wir uns auch nicht wundern, wenn andere diese auch nicht Ernst nehmen.

@oneandonlycore:

Ich wĂŒrde dir auch zu Maperitive raten. Viele Funktionen findest du direkt in der GUI als SchaltflĂ€che, der Rest ist in der Hilfe gut dokumentiert. Wenn du die Tiles hast, kannst du diese ĂŒber OpenLayers auf deine Website bringen.

Welches Betriebssystem setzt du ein? WĂ€re das eine Option fĂŒr dich: http://forum.openstreetmap.org/viewtopic.php?id=13983
Ich habe diesen Server unter Windows in einer virtuellen Maschine laufen und bin nicht unglĂŒcklich darĂŒber. Der Import von Berlin hat bei mir weniger als 10 Minuten gekostet. Der Download der KĂŒsten und Co schon etwas lĂ€nger.
Aber im Prinzip hĂ€ttest du dann genau das erreicht was du möchtest. Wenn nur Hamburg importiert ist bleiben die Kacheln außen rum recht einfarbig. Allerdings sind die Geofabrikextrakte nicht grenzgenau. Da mĂŒĂŸtest du vielleicht mit einem eigen Polygon nachschneiden.

(1) Es wurden konkret einige Tools genannt, die nicht mehr beworben werden sollen. Hab ich auch nicht getan.
(2) diese Tools sind bereits “gedrosselt” worden
(3) Haben wir mittlerweile auch unproblematische Tile-Anbieter
(4) Glaube ich nicht, dass das Laden von einer einzelnen Stadt bereits problematisch ist

Hallo,

@viw
Also Mein OS ist ein Ubuntu 11.04
momentan befindet sich das alles noch lokal auf meinem PC, aber wenn es alles klappt wird das auf einen server ĂŒbertragen von daher denke ich, dass die Tileserver Möglichkeit (vorerst zumindest) wegfĂ€llt ;).

@chris66
Die Möglichkeit fĂ€llt denke ich auch weg, da ich ja im falle eines Updates die Daten wieder neu vom Tileserver ziehen mĂŒsste oder ?

@SunCobalt
ab wann wĂ€re denn “Mapnik” und oder “Postgres” deiner Meinung nach von Nöten ? sprich: ab welcher GrĂ¶ĂŸe hĂ€lst du es fĂŒr sinnvoll das einzusetzen ?

@rest :wink:

Also wenn ich das jetzt richtig verstanden habe, brauche ich “Maperitive” oder Ă€hnliches um aus der .OSM Datei die Tiles zu erzeugen oder ?
Wenn ja, wird das dann immer dynamisch gemacht, also mit jedem male wo ich zoome werden die Tiles neu gerendert oder passiert das einmalig fĂŒr alle Tiles ?

Nein, das machst du einmalig vorher. Und danach sooft, wie du ein Update des Kartenhintergunds fĂŒr notwendig hĂ€ltst.

Gruß,
ajoessen

Wenn es nicht mehr tragbar ist, alle Tiles vorab alle zu rendern sondern “on-demand”. FĂŒr mich persönlich etwa grĂ¶ĂŸeres Bundesland, aber das ist Geschmackssache. Und dann, wenn man die Tiles auch tagesaktuell haben möchte.

Danke erstmal fĂŒr die Antworten! Ihr habt mich schonmal ein ganzes StĂŒck weiter gebracht! :slight_smile:

Habe die Tiles nun erzeugt und den Pfad in dem Script angepasst. Jetzt Sehe Ich zumindest Schonmal ein Raster, aber noch keine Bilder (mir wird dieses Zerissene-Datei icon angezeigt ^^)
Liegt das evtl an den Zoomstufen ? Es wurden bei mir stufe 7 - 11 gerendert. An den Rechten liegt das Problem jedenfalls nicht.

In dem Script weiter oben hast du Zoomlevel 14 als Startwert eingegeben. Also musst du den Àndern, oder bis Zoomlevel 14 weiter rendern.

Gruß,
ajoessen

ich hatte ihn schonmal testweise mit lvl 10 probiert 
 hat auch nicht geklappt 


ich glaube das problem liegt in diesem teil:

(http://wiki.openstreetmap.org/wiki/DE:OpenLayers_Simple_Example)
var newLayer = new OpenLayers.Layer.OSM(“New Layer”, “path_to_tiles/”, {numZoomLevels: 19});
“path_to_tiles” - URL zum Server der Basiskarte

wenn ich mir das raster mit firebug anschaue, dann passiert nach dem ordner “Tiles” nichts mehr
 und da die Tiles ja anscheinend im normalfall in mehreren unterordnern sind, funktioniert das natĂŒrlich nicht 
 da fehlt wohl noch ein Script :confused:

Ja das ist etwas zu grob vereinfacht. Bei mir funktionierts so:

		var MyMapnikLayer = new OpenLayers.Layer.OSM("myMapnik", "file:///D:/Tiles/myMapnik/${z}/${x}/${y}.png", {numZoomLevels: 16, alpha: true, isBaseLayer: true, visibility: true});
        map.addLayer(MyMapnikLayer);

Bei Ubuntu möglicherweise ewas anders. aber z/x/y.png muss schon noch mit rein.

Gruß,
ajoessen

Ja, als URL musst Du denke ich eine in der Art: “file:///” angeben, Orderstruktur so wie auf den Servern
also z/x/y.png
Chris

Es Klappt endlich!
genau so wie ajoessen geschrieben hat
“Tiles/myMapnik/${z}/${x}/${y}.png” geht auch bei ubuntu/linux :wink:
diese Pfadvariablen haben mir gefehlt!

Vielen vielen Dank fĂŒr eure Hilfe!! :slight_smile:

Hi,

Also ich will das ganze jetzt auf Mapnik umbauen, da das Rendern fĂŒr mehrere Zoomstufen ja doch sehr lange dauert (und weil evtl spĂ€ter mal eine grĂ¶ĂŸere Karte mit rein soll :wink: )
Der Server steht soweit schonmal, das heisst die Karte wurde schon mit osmosis in die Datenbank eingspielt.
Beim aufrufen im Browser ĂŒber die IP xxx.xxx.xxx.xxx:3000 wird mir dann allerdings die komplette weltkarte angezeigt, die er offenbar vom offiziellen OSM-Server zieht.
Jetzt Stellen sich mir einige fragen:

Wie kann ich das verhindern, dass die Karte vom offiziellen OSM-Server gezogen wird ?
Wo liegen die Dateien, auf die ich zugreife, wenn ich ĂŒber die IP oben auf meinen Server zugreife?
Wie baue ich die Hamburg Karte da ein?

achja
 das OS des servers is ein Debian 6 :wink: