[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