Tile-Status programmtechnisch abfragen

Man kann ja mittels “http://tile.openstreetmap.org/15/17162/11485.png/status” den Status eines Tiles abfragen. Geht das auch irgendwie programmtechnisch mit einer Javascript-Funktion (OL vielleicht)? Laut SelfHtml ist die Abfrage einer URL mit Javascript nicht möglich.

Wyo

Das geht und das geht nicht. Mittels JavaScript kann man normalerweise nur bestimmte HTTP-Verbindungen öffnen. Wenn es erlaubt ist, geht das einfach (z.B. mit XmlHttpRequest). Ansonsten hast du Pech gehabt.

Welche Http-Verbindungen sind erlaubt? Normalerweise nur solche zu demselben Host, von dem die ursprüngliche Seite geladen wurde. Das ist ein Sicherheitsfeature.

Firefox / Mozilla erlaubt bzw. erlaubte mal, dieses Feature auszuschalten, rät aber aus besagten Sicherheitsgründen dringend davon ab. Wie andere Browser das handhaben, weiß ich nicht. Wenn Du also so was vor hast, informiere Dich vorher gut darüber, welche Sicherheitsrisiken Du eingehst.

Wie auch immer, google mal nach XmlHttpRequest.

Gehst Du weg vom Browser, e.g. zu einer Java-Anwendung, ist das ganze einfach.

EDIT: Nachtrag: habe gerade dies unter dem Stichwort Cross-Site XmlHttpRequest gefunden [1]

Firefox 3.5 supports cross-site requests by implementing the web applications working group’s Access Control for Cross-Site Requests standard. As long as the server is configured to allow requests from your web application’s origin, XMLHttpRequest will work. Otherwise, an INVALID_ACCESS_ERR exception is thrown.

[1] https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest

Da meine Webseite auf meinen Server einen Request nach OSM machen würde, wäre das Cross-Site und damit möchte ich mir nicht die Finger verbrennen.

Der Status eines Tiles wird ja wohl kaum innerhalb des “.png” gespeichert sein, ausser es werde mittel fileinfo ermittelt. Der Re-rendering Prozess muss ja auch irgenwie zugreifen können, also sollte es irgendwie auch direkter gehen. Auskunft geben kann wahrscheinlich aber nur jemand, der sich mit den Innereien von OSM auskennt. Wer könnte das sein?

Wyo

Wenn Du auf Deinem Webserver CGI hast, dann kannst Du den Request auf die ‘fremde’ Seite auch über ein Proxy-Script aufrufen, siehe OpenLayers.ProxyHost.

OpenLayers.ProxyHost scheint nicht dokumentiert zu sein (finde es nicht), wird aber in einigen Beispielen verwendet. Ich habe zwar ein CGI bei meinem Hoster, bezweifle aber, dass ein Python-Script läuft. Hat jemand ein PHP-Script (mit “howto use”) zur hand?

So nebenbei, beim googlen nach “OpenLayers.ProxyHost” bin ich auf folgende exzelente Präsentation gestossen
http://www.soc.org.uk/southampton09/presentations/OpenLayers.pdf

Wäre schön wenn der Vortrag dazu irgendwo im Wiki nachzulesen wäre.

Wyo

Python auf CGI läuft doch fast überall? Probier’s einfach aus (ich weiss leider nicht mehr, wo ich mein Script her habe)

  • http://osm.t-i.ch/tmp/proxy.txt herunterladen, in proxy.cgi umbenennen

  • die gewünschte Website zu allowedHosts in der Datei hinzufügen

  • Datei ins CGI-Verzeichnis auf dem Server hochladen

  • Proxy-URL im OpenLayers-Script eintragen (bei mir: OpenLayers.ProxyHost = “/cgi-bin/proxy.cgi?url=”;, vgl. Mein Script)

Persönliche Hilfe gibt’s am nächsten Donnerstag am OSM-Stammtisch :wink:

Das ist natürlich ein Argument, versprechen kann ich aber noch nichts. Zur Vorbereitung kannst du ja mal http://www.orpatec.ch/osm/tools/main.php besuchen, dann siehst du wie weit ich bis jetzt bin.

Wyo

Du bist auf dem richtigen Weg. :wink:

Manchmal dauert es eben ein bischen :wink:

Das Python-Script scheint bei mir tatsächlich nicht zu gehen, konnte es aber inzwischen über ein rudimentäres PHP-Script lösen. Vielen Dank.

Wyo

Du sagemal wyo, würde dir das hier nicht was nutzen? http://wiki.openstreetmap.org/wiki/API_v0.5#Getting_list_of_changed_tiles

Jein. Ich habe es gemacht, weil ich wissen will, warum einzelne Tiles nicht gerendert werden (siehe http://forum.openstreetmap.org/viewtopic.php?id=9591)), obwohl offensichtlich etwas falsch ist. Ich vermute, es gehen ab und zu Updates für Tiles vergessen.

Übrigens habe ich noch ein anderes OL-Problem (siehe http://forum.openstreetmap.org/viewtopic.php?id=9795)) :wink:

Wyo