SlippyMap Generator

Hallo Zapfen,
gestern war wohl mein Rechner ermüdet. Heute früh macht er jedenfalls alles richtig. Auf Deutsch: Dieses Posting hat sich von selbst erledigt.

Warum ich (noch) mit Frames arbeite? Weil ich mir das mal so beigebracht habe. Ich mache alles in HTML und finde Frames praktisch und komfortabel. Zum Umlernen habe ich auch keine Lust mehr.

Ich schicke Dir die Zugangsdaten zu HP per Mail. Vom 5.5.-13.5.09 bin ich nicht da.

Danke für die Antwort
Frank

Hallo … ,

Sehr schön und hilfreich!

Ich versuche grad, den generierten Code zu verstehen und für meine Bedürfnisse anzupassen
Dazu habe folgende Fragen:

  • Die Karte wird ja in einem neuen Tab geöffnet. Nun möchte ich gern von Dort wieder zur aufrufenden Seite zurückspringenkönnen. Wie mache ich das?

  • Wenn ich, statt die Karte in einem neuen Tab, diese lieber
    a) als Popup-Fenster oder
    b) als eingebundene Slippy-Map auf der aktiven Seite anzeigen möchte
    wie mache ich das?

  • Ich habe einen Marker am Ziel, und einen Marker am Bahnhof. Nun möchte ichm dass bei MouseOver am Bahnhof
    a) das Popup erscheint und
    b) gleichzeitig eine GPX-Datei, die den Weg vom Bahnhof zum Ziel zeigt.
    Wie mache ich das?

Gruss, Markus

wer kann helfen?
Gruss, Markus

Ob die Karte in einem neuen Tab geöffnet wird, kommt doch darauf an wie du sie verlinkst?

a) Mit JavaScript ein Popup öffnen und die Karte als zu öffnende Seite angeben
b) Benötigt etwas mehr Handarbeit. Du musst das Karten-Div an der entsprechenden Stellen einfügen, im Head der Seite das JavaScript einfügen und das CSS anpassen.

Das Popup erscheint ja auch so schon, die GPX-Datei wird allerdings schwerer. Wenn bei allen Markern auf der Karte das gleiche GPX angezeigt werden soll, dann könntest du vermutlich einfach die addMarker-Funktion dahingehend ergänzen, dass der GPX-Layer aktiviert/deaktiviert wird wenn man über den Marker fährt. Soll es je nach Marker eine andere GPX-Datei sein, könntest du der addMarker-Funktion einen weiteren Parameter hinzufügen, der den jeweiligen GPX-Layer angibt (der natürlich vorher schon erstellt sein muss und einer Variable zugewiesen, im Moment ist das bei der GPX-Funktion im Generator nicht der Fall).

Gruß

Hallo … ,

Bei mir heisst der Aufruf für die mit dem Generator erzeugte Karte:
OpenStreetMap-Karte
Nun hätte ich gern in der Karte einen Link, mit dem ich wieder zur aufrufenden Seite zurück komme. Wie mache ich das?

Ich bin leider kein Programmierer. Ich stelle mir einen Code-Block vor, den man einbaut und dann funktioniert alles mit einem Aufruf mit Parametern (so wie in Wikimedia - und hoffentlich bald in Wikipedia).

Klingt gut. Kannst Du mal ein Beispiel machen?

Gruss, Markus

@dt2:
ich habe mit Deinem “kleinen Script” herumgespielt und es reicht für meine Zwecke (separate Slippy Map mit einer eingezeichneten Wanderroute) völlig aus. Das Script ist prima!!

Das Problem ist, dass meine Route nicht ganz klein ist und sich außerdem erweitert. Ich kann also nicht die Route in einem Rutsch aufnehmen, von Dir berechnen lassen und die fertige Karte herunterladen. Ich muss in mehreren (vielen) Arbeitsschritten gehen.

Du wirfst verständlicherweise die übergebenen Variablen nach Abschluss der Arbeit weg. Das ist aber nicht gut für mich.

Mein Wunsch ist also:
Es soll eine Möglichkeit geben, die Variablen als Datei auf den eigenen Rechner zu laden und zu sichern (“Speichere Schnappschuss der Karte”). Dann kann man unterbrechen und z.B. die GPX Datei in Ordnung bringen. Danach kommt man wieder auf Deine Seite und findet einen Button “Hochladen Kartenstatus”. Man lädt hoch und die Arbeit geht weiter. Dein Rechner ist von einem Wust an Dateien entlastet und muss “nur” die Rechenzeit und den Datenverkehr verkraften.

Bitte denke drüber nach!
Frank

P.S. Das Ganze macht allerdings nur Sinn, wenn Deine Anwendung nicht nur eine Fingerübung ist, sondern dauerhaft (Mindestens drei Jahre) zur Verfügung steht

Eigentlich ‘berechnet’ das Script garnichts, sondern fügt nur den OpenLayers-Code für die GPX-Datei automatisch hinzu. Wenn sich bei dir nur die GPX-Datei ändert, kannst du vermutlich den OpenLayers-Code behalten und nur die Datei austauschen.

Eine Export-/Importfunktion ist schon geplant, wann ich allerdings dazu kommen steht natürlich in den Sternen. Du kannst als Notbehelf allerdings auch einfach die aktuelle Seite bei dir lokal speichern (Firefox: Datei - Seite speichern unter…). Wenn du dann weitermachen willst lokal aufrufen und Formular abschicken und du landest wieder auf der Easymap-Seite. Da alle Einstellungen über das Formular übergeben werden, sollte das funktionieren, probier es doch einfach mal aus. Sicherlich ist das nicht besonders schön und wenn sich das Formular mal ändert funktioniert es auch nicht mehr unbedingt. Aber erstmal besser als nichts.

Gruß

Hallo,

bin gerade dabei, ein kleines Veranschaulichungs-Projekt mit easymap-Hilfe von Google-Maps auf OSM umzustellen. Hat ein Mitleser die mit easymap erstellten Seiten mal mit einem neueren Internet-Explorer (Version 7 oder 8) getestet? Bin eigentlich schon lange von Windows fort, habe zu Testzwecken aber noch W2K mit IE6 (neuere IE gibt’s dafür nicht), und da kommt ein leeres Anzeigefeld mit Meldung “Seite kann wegen Fehlern nicht angezeigt werden”. Firefox und Opera hauen erwartungsgemäß hin.

Nun surft kaum jemand mehr mit IE6, und die seltsame Scriptverarbeitung der alten IE-Versionen ist legendär, ich muss aber mit IE-Anwendern mit neueren Versionen rechnen. Bis ich an einen XP- oder Vista-Rechner komme, dauert seine Zeit - wäre nett, wenn schon positive oder negative Erfahrungen gemeldet werden könnten.

Was anderes: Beim Ansehen des vom Generator erzeugten Codes findet man heraus, wie man auf der OSM-Oberfläche selbstgefertigte Marker-Symbole für ausgewählte Punkte anzeigen kann; habe ich noch nirgendwo dokumentiert gesehen. (Händische Nachbearbeitung der HTML-Datei erforderlich.)

Grüße, Thomas

Test auf einem XP-Rechner mit IE7 ergab auch leere Anzeige, nach Überprüfung den Skriptfehler “Zeile 857, Zeichen 1: ‘this.handlers.click’ ist Null oder kein Objekt.” Offenbar ein Problem mit der OpenLayers.js, das hier sicher nicht lösbar ist.

Gruß Thomas

Hallo dt2,

habe mir dein Tool zum erzeugen einer Slippy Map Seite angeschaut.
Kann nur sagen Wow - Super – Danke. Werde deinen Dienst mit Sicherheit öfters mal benutzen.

stefan

Hallo dt2,

ich bin heute auf Dein Tool gestoßen. Super und vielen Dank. Ich habe jetzt nicht alle Beiträge intensiv gelesen. Hast Du auch den Code zum Erstellen der herunterladbaren Map erklärt bzw zur Verfügung gestellt?
Was muß man tun, um das Ganze (erstellen der MAP) auf einem lokalen Server laufen zu lassen?

Vielen Dank für Dein Tool
Achim

Moin!

ich wollte die Lagebeschreibung unseres Vereins mit der OSM-Karte versehen und habe dafür den Code vom SlippyMap Generators in die bestehende Seite [1] eingebunden. Die sich dann ergebende Datei [2] habe ich hochgeladen - aber irgendwie ist da noch etwas fasch gelaufen.

Die Karte wird zwar angezeigt - dafür sitzen die Schalter allerdings falsch, es wird die Scrollleiste auf der rechten Seite des FF3-Browers nicht mehr angezeigt, die Fahne fehlt und der nachfolgende Text.

Kann mir einer sagen voran das liegen könnte - die Seite ist mit Tabellen aufgebaut.

Gruß Jan :slight_smile:

[1] korrekt mit alter Karte http://www.phv-luebeck.de/deu/anfahrt.php

[2] OSM-Karteneinbindung: http://www.phv-luebeck.de/deu/anfahrt_osm.php

Hallo dt2,

was noch fehlt ist, dass man die gezeichnete Karte als GPX Datei speichern könnte. Hast du da einen TIPP?

MfG
Achim

Der Code besteht aus PHP und JavaScript. Der JavaScript Code ist technisch bedingt natürlich offen, den PHP Code habe ich nicht veröffentlicht, da er doch etwas durcheinander und überhaupt nicht dokumentiert ist. Wenn du es unbedingt brauchst, könnte ich es dir natürlich schicken. Allerdings weiß ich nicht ob du dann damit klarkommst.

Die Ausgabe des Generators ist als eigenständige Seite konzipiert, da sowas am einfachsten einzubinden ist. Wenn du es in eine bestehende Seite einbauen willst, funktioniert das nicht ohne weiteres. Eigentlich hast du es ja schon korrekt eingebunden, allerdings wirkt das CSS falsch.

Versuch es doch mal damit den Inhalt der map.css dadurch zu ersetzen (ohne Garantie ;)):


@charset "utf-8";

#map {
  height: 400px;
  width: 100%;
  padding: 0;
  margin: 0;
  font-family: Arial, sans-serif;
  font-size: 1em;
  color: #000;
}
.olFramedCloudPopupContent {
    font-size: 0.8em;
    font-family: Verdana, sans-serif;
}
#descriptionToggle {
    display: none;
} 
#description {
    display: none;
}
 
#attribution {
    display: none;
}

#layer {
    display: none;
}

.hide { display: none; }

Prinzipiell ist das einfach alles ausgeschaltet was nicht funktioniert, wenn man es in einer vorhandenen Seite eingebunden hat. Zudem ist die Größe entsprechend beschränkt.

Dafür ist das eigentlich nicht gedacht. Würde ich natürlich gerne einbauen, aber ob ich dazu komme ist fraglich. Eine Strecke auf der Karte einzeichnen und als GPX speichern kannst du z.B. hier: http://topo.geofabrik.de/

Hallo dt2,

…der Hintergrund ist, dass ich auf meinem Lokal laufenden Server die GPX Dateien verwalten und generieren möchte. Leider habe ich nur den ISS in Verbindung mit aspx. Aber deine Formulardaten habe ich schon mal in einer C# Routine drin. Falls du mir das PHP zur Orientierung schicken könntest, wäre das super.

Vielen Dank
Achim

HI !

@Senior Member - Posting #42: danke - hat geholfen !!!

Schön wäre es noch, wenn es optional auf der Karten einen “Reset” Schalter geben würde um wieder an die ursprüngliche Position zurückspringen zu können !

Kannst Du mir in dem Zusammenhang sagen wo die Inhalte der Sprechblasen formatiert werden ??

Gruß Jan :slight_smile:

@Lübeck und wieso erscheint ihr noch nicht auf dieser Seite ? :slight_smile:
Georg

Hi !

"@Lübeck und wieso erscheint ihr noch nicht auf dieser Seite ? "

… weil ich die Anpassung noch nicht “scharf” geschaltet habe - aber dann !!!

Kannst Du mir noch etwas zur Formatierung der Sprechblase sagen ?

Gruß Jan :slight_smile:

HI !

ich habe noch einmal eine Frage bzgl. des Skriptes was das Icon angeht.

Dieses habe ich auf

http://www.phv-luebeck.de/deu/anfahrt_osm.php

gegen das Vereinswappen ausgetauscht und es wird nun “exzentrisch” angezeigt.

Vermutlich ist ein Parameter in der Zeile

icons[7] = new Array(‘…/grafiken/icon4mag.png’,‘32’,‘32’,‘0’,‘1’);

anzupassen - aber welcher wie ?? Die beiden 32 geben ja nur die Bildgröße an ??

Kannst Du mir nochmal weiterhelfen ??

Gruß Jan :slight_smile:

Versuchs mal damit:


<a href="#map" onclick="javascript:jumpTo(lon, lat, zoom)">test</a>

Die CSS-Klasse olFramedCloudPopupContent ist dafür verantwortlich. Die Größe wird allerdings in der util.js festgelegt, in der Zeile mit feature.popupClass.

Die beiden letzten Werte geben den Offset an, in dem das Icon angezeigt werden soll. Sie sind also dafür verantwortlich, dass das Icon auf die richtige Stelle ‘zeigt’. Wenn du das nur so grob hast, brauchst du das eventuell nicht unbedingt.

Hier in der util.js werden diese Werte verwendet. Beide werden jeweils mit der Breite bzw. Höhe multpliziert und von der ursprünglichen Position abgezogen. 0 und 1 heißt hier also dass das Icon mit der linken (0, nicht verschoben) unteren (1, um die Höhe nach unten verschoben) auf der angegebenen Position liegt.


var offset = new OpenLayers.Pixel(-(size.w*icons[iconId][3]), -(size.h*icons[iconId][4]));

Für dein Icon, sofern du die Position direkt auf dein Ziel gesetzt hast, scheinen mir 0.5 0.5 passende Werte zu sein, dann ist das Icon vertical und horizontal zentriert.

Gruß