[Talk-de] Maperitive - Tileserver
Andre Joost
Andre+Joost at nurfuerspam.de
So Jan 22 06:09:02 UTC 2012
Jan Tappenbeck schrieb:
> Hi!
>
> ich möchte mit Maperitive erzeugte Tiles in eine Openlayers Karte
> einbinden.
>
> Bisher habe ich einfach nur ein Tile-Verzeichnis angelegt und fertig -
> lief auch teilweise. Nur die Auslieferung der leeren Tiles außerhalb des
> gerechneten Bereiches werden fehlerhaft ausgeliefert.
>
Das ist eigentlich ein Problem, für das es bei Openlayers eine Lösung
gibt: Wenn die URL nicht abgerufen werden kann, wird ein "Fehler"-Tile
eingeblendet. Bei der OSM-Anwendung kommt dann "More OSM coming soon.."
steht in der Openstreetmap.js:
> /**
> * Constant: MISSING_TILE_URL
> * {String} URL of image to display for missing tiles
> */
> OpenLayers.Util.OSM.MISSING_TILE_URL = "http://www.openstreetmap.org/openlayers/img/404.png";
>
> /**
> * Property: originalOnImageLoadError
> * {Function} Original onImageLoadError function.
> */
> OpenLayers.Util.OSM.originalOnImageLoadError = OpenLayers.Util.onImageLoadError;
>
> /**
> * Function: onImageLoadError
> */
> OpenLayers.Util.onImageLoadError = function() {
> if (this.src.match(/^http:\/\/[abc]\.[a-z]+\.openstreetmap\.org\//)) {
> this.src = OpenLayers.Util.OSM.MISSING_TILE_URL;
> } else if (this.src.match(/^http:\/\/[def]\.tah\.openstreetmap\.org\//)) {
> // do nothing - this layer is transparent
> } else {
> OpenLayers.Util.OSM.originalOnImageLoadError;
> }
> };
Und da kannst du statt dem 404.png von OSM jedes beliebige andere Tile
einbinden, auch ein einfach leeres Tile. Oder du nimmst gleich die
do-nothing-Alternative.
Gruß,
André Joost
--
Gruß,
André Joost
Mehr Informationen über die Mailingliste Talk-de