Eigene Tiles über OSM legen

Hallo,

ich bin aktuell dabei, von Google auf OSM umzusteigen.
Dazu möchte ich eigene transparente Tiles über die “orginalen” OSM-Tiles legen.

In GM wurde wurde das wie folgt realisiert:


var tileLayerOverlay = new GTileLayerOverlay
(
      new GTileLayer(null, null, null, {tileUrlTemplate: '../tiles/{Z}_{X}_{Y}.png', isPng:true, opacity:1.0})
);
map.addOverlay(tileLayerOverlay);

Leider finde ich diese Möglichkeit nicht.
Wäre nett, wenn mir jemand einen Denkanstoß geben könnte… :slight_smile:

Beste Grüße
Wayne

Wenn du Openlayers benutzt ist das ganz einfach.
Du musst einfach einen “nicht Basislayer” hinzufügen. Als Beispiel aus dem OSM Viewer von Ajoesen:
var BahnLayer = new OpenLayers.Layer.OSM(“Bahn”, “file:///K:/Tiles/Bahn/${z}/${x}/${y}.png”, {numZoomLevels: 19, alpha: true, isBaseLayer: false, visibility: true});
Von diesen Layern kannst du beliebig viele übereinander legen und in der Layerbox an oder ausschalten. (Häckchen)

Hallo Wayne,

herzlich Willkommen im Forum, viel Erfolg mit OpenLayers/OSM und probiers mal hiermit:


var newLayer = new OpenLayers.Layer.OSM("NAME", "../tiles/${z}_${x}_${y}.png", {numZoomLevels: 19, alpha: true, isBaseLayer: false});
newLayer.setOpacity(1.0); //bei 1.0 nicht notwendig
map.addLayer(newLayer);

Wenn es kein Overlay sein soll, sondern eine normale Ebene, dann isBaseLayer auf true setzen.
Außerdem musst du die Datei openstreetmap.js von der OSM-Hauptseite eingebunden haben: (am besten lokal speichern und einbinden)
http://www.openstreetmap.org/openlayers/OpenStreetMap.js

Viele Grüße,
Malte

Sie müssen aber alle eindeutige Variablennamen haben, nicht einfach alle newLayer nennen :wink:

Gruß,
ajoessen

Hi Wayne,

ist das deine Reaktion auf Google’s Pläne? http://forum.openstreetmap.org/viewtopic.php?id=14252

Denk bitte dran, dass es gewisse Spielregeln gibt, was das Benutzen “unserer” OSM-Karte betrifft.
Bei richtig grossen Anwendungen bekommen unsere Server Probleme mit der Datenmenge.

http://blog.osmfoundation.org/2011/11/01/tile-usage-policy/

Wie es auch seit, fang erst mal an und schau wie sich die Sache entwickelt.

Gruss
Walter

Muss man meiner Meinung nach nicht, da OpenLayers.Layer.OSM in OpenLayers selbst definiert ist (in OpenLayers.Layer.XYZ). In der OpenStreetMap.js gibt es halt die vorkonfigurierten Layers von der Website als Ableitung von Layer.OSM, es geht aber auch ohne.

Zudem bin ich mir nicht sicher, ob der darin verwendete Trick, mehrere Alias-URLs (a,b,c) anzugeben, nicht sogar inzwischen gegen die Tile Usage Policy verstößt:

http://wiki.openstreetmap.org/wiki/Tile_usage_policy#Technical_Usage_Requirements

Vielen Dank für die schnelle und vor allem ausführliche Hilfe. > Funktioniert soweit… :slight_smile:

Ist es auch möglich, nicht vorhandene Tiles einfach auszublenden bzw zu ignorieren?
Aktuell zeigt er mir hier noch ein nichtvorhandenes Image an. :slight_smile:

Ehrlich gesagt ja.
Aber nicht, weil die Zugriffe auch nur annähernd erreicht werden.
Es geht mir hierbei mehr ums Prinzip. > Google lebt von den Daten und der Werbung.

Ich denke aber das betrifft die wenigsten Seiten, die privat im Netz stehen.
25.000 API-Zugriffe pro Tag müssen erst mal erzeugt werden.

Und sollten die Zugriffe doch bedeutend höher liegen, dann sollten auch soweit Einnahmen entstehen,
die Googles geplante Kosten (oder einen eigenen Tile-Server) mit finanzieren.

Wayne

Er macht das, was in der Openstreetmap.js steht:

Auf deutsch: findest du ein Tile auf osm.org nicht, zeige stattdessen unser 404.png an (more OSM coming soon).
Bei anderen Quellen nimm das Ersatzbild, was in Openlayers.js definiert ist.

Das kannst du nach belieben abändern, wenn du OpenStreetmap.js lokal vorrätig hältst.

Gruß,
ajoessen

Vielen Dank.
Klappt optimal… :slight_smile: