meine OSM-Karten laufen primär auf der OL 2.11 Version (ist zwar rc-1) aber nachfolgendes Problem ist auch bei der aktuellen OpenLayers.js [1] der Fall.
Wenn ich in meinen Karten (Beispiel [2]) auf den Permalink klicke, dann ändert sich nach dem Kartenverschieben auch nicht die URL.
Da ich einige Komponenten von Netzwolf verwende habe ich mich zunächst mit ihm ausgetauscht und er hat festgestellt das es wohl an [1] liegt mit der Version 2.09 aber funktioniert.
Das machte mich nun mehr als stutzig da eine fehlerhafte Permalink-Funktion wohl schon längst zum Aufschrei geführt hätte.
So habe ich mich heute morgen daran gemacht den HTML-Code von [2] soweit zu bereinigen das der “Basiscode” überbleibt [3] - aber immer noch immer arbeit mein Permalink nicht richtig.
Hat eine von Euch diesselben Erfahrungen gemacht oder hat eine Idee woran es liegen könnte ???
Sicher kann ich auch auf 2.12 updaten und es ausprobieren - aber damit wollte ich noch etwas warten und ich suche den “wirklichen” Grund.
Dir fehlt etwas bei den Steuerelementen (controls:[…]):
new OpenLayers.Control.Navigation(),
Zusätzlich wäre auch noch gut:
new OpenLayers.Control.ArgParser(),
Dann ändert sich auch der Permalink, wenn du die Karte verschiebst oder zoomst.
Jetzt wird zwar der Permalink richtig erzeugt, aber wenn du diesen oder irgend einen anderen Permalink aufrufst, dann landest du immer am selben Ort.
Denn du überschreibst den über den Permalink angegebene Ort und den Zoom sofort wieder:
map.setCenter(new OpenLayers.LonLat(12.87234,54.32555).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), 7);
Also z.B. ändern in:
if (!map.getCenter()) {
map.setCenter(new OpenLayers.LonLat(12.87234,54.32555).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), 7);
}
Falls deine Seite mit einem Permalink aufgerufen wird, werden somit die Permalink-Informationen verwendet und nicht mehr überschrieben, ohne Permalink wird dann der von dir angegeben Ort und Zoom verwendet.