OpenLayers 2.12 - mangelnde optische Feinabstimmung?

Moin,

so ganz nebenbei laden meine Webseiten seit einigen Stunden wohl ein neues OpenLayers. Ist ja auch ok, wenn ich immer bei der alten Version bleiben wollte, würde ich sie selbst vorhalten. Aber irgendwie sieht das nicht so ganz sauber optisch abgestimmt aus, also der Layer-Switcher und die Zoom-Leiste finde ich optisch nicht stimmig, das passte vorher besser zusammen.
Beispiel: http://yapis.eu/?id=9 - oder sitzt das Problem vor dem Computer und es gibt eine einfache Lösung?

LG,

-moenk

Moin !

Schau mal bei http://news.gmane.org/gmane.comp.gis.openlayers.user vorbei - wenn ich es richtig verstehe kann das über Css konfig werden.

Gruß Jan

Ich arbeite schon ne weile mit der Dev, aber da ist mir dies Verhalten noch gar nicht aufgefallen. Für mich ein Grund dann doch immer OL selbst zu hosten, da dann und wann doch Features verloren gehen, oder es zu Problemen kommt.

Moin,

vielleicht könnte ja irgendjemand der da in dem Thema mehr drin ist einen Bugreport einreichen. Alternativ nehm ich auch konstruktive Vorschläge entgegen wie ich die alten Images wiederbekomme. Wenn die in der neuen Version noch dabei sind kann man da eine Eigenschaft vermutlich ganz einfach überschreiben.

LG,

-moenk

Kann es sein, dass dort auch der Layer “OSM deutscher Stil” nicht mehr funktioniert?
Bekomme da nur einen rosaroten Hintergrund.
Oder liegt das an mir (Firefox 13.0.1)?

Gruß,
Mondschein

@Mondschein: liegt an Firefox. Bei mir funktioniert das einwandfrei in Chrome 21.0.1180.11, in Firefox 13.0.1 nicht.

@Moenk: leicht OT, bei höheren Auflösungen (in dem Fall 1920x1080) sieht yapis recht albern aus. Du darfst den Platz ruhig ausnutzen, ich brauch keinen weißen Rand für Notizen :stuck_out_tongue:

Hi !

haben wohl auch die OpenStreetMap.js umgebaut - irgendetwas mit einer neuen js.

Bin nur smart ontour.

Gruß Jan

Moin,

ich bin mir recht sicher am Code nichts geändert zu haben. Die Ursache für die Probleme mit dem deutschen Stil sind demnach auch in OpenLayers 2.12 zu suchen. Ich hab mal versucht diesen Bug zu melden: https://github.com/openlayers/openlayers/issues/554

LG,

-moenk

Also ich habe mit dem Hillshading derzeit Probleme. Liegt dies auch an der neuen Version oder hat sich der Server für die Höhenschattierungskacheln geändert? Alles wird derzeit rosa, wenn ich diesen Layer zuschalte:


...
map.addLayer(new OpenLayers.Layer.OSM("Höhenschattierung", "http://toolserver.org/~cmarqu/hill/${z}/${x}/${y}.png" , {numZoomLevels: 17, isBaseLayer: false, transparent: true, opacity: 0.9999999999, visibility: false, attribution:'Hillshading by <a href=http://toolserver.org/~cmarqu/hikebike.html>toolserver.org</a>'}));
...

Hat jemand einen Tipp für mich?

@fireball2: welche Browser? Nur Firefox oder auch andere?

Probiere es mit der Vorgängerversion 2.11, siehe auch:
http://forum.openstreetmap.org/viewtopic.php?pid=251561#p251561

Gruß,
Mondschein

Ich hab’s bislang nur im Firefox getestet, sollen da andere Browser einen Unterschied machen?

Du hast Recht, im IE9 funktioniert’s. Kann man da was machen, “früher” ging’s doch auch?!

@Mondschein: Danke für den Hinweis, ich werde mir die 2.11’er Javascript-Dateien lokal ablegen. Ich hab’ keine Lust künftig bei jedem Versionswechsel alle meine Webseiten umbauen zu müssen.

Fireball,

Seltsamerweise funktioniert das in anderen Browser und mit der rechten Maustaste kann man sich die Kachel sogar zeigen lassen die da zu sehen sein sollte. Wird also an dem neuen CSS-Spielkram liegen. Schließe mich den Worten des Vorredners an: Wieder zurück auf 2.11 gehen ist derzeit Mittel der Wahl.

LG,

-moenk

Ich muss doch nicht wirklich alles aus der OpenLayers-2.11.tar.gz auf meine Homepage hochpumpen? Ich hab’s jetzt schon auf die “OpenLayers.js” und die Unterordner “art”, “img” und “theme” beschränken können. Dies sollte doch ausreichen, oder? Zumindest fallen mir keine Anzeige- und Bedienprobleme auf.

Würdet Ihr auch die “http://www.openstreetmap.org/openlayers/OpenStreetMap.js” lokal anlegen oder sollte man die besser immer von openstreetmap.org abholen lassen?

Ihr seid mir wie immer eine große Hilfe, danke.

Und wenn dann nach 4 Wochen irgendwas bei einem Kollegen auf einmal nicht funktioniert, suchst du dich kaputt. Tu’s lieber komplett drauf.

lokal, denn osm kann auch mal down sein.

Gruss
walter

p.s. ich hab mal versucht, folgendes zu erreichen: Lade vom OL-Server und wenn das nicht geht, nehme lokale Kopie. bin aber irgendwie gescheitert und hab es dann liegen lassen.

Gutes Argument. Ich wollte OL z.B. schon immer mal auf deutsch umstellen, im Unterorder “lib/lang” liegen ja die Dateien schon rum. Leider hab’ ich noch nicht rausgefunden, wie oder wo ich die ansprechen muss. Vermutlich muss ich dafür auch die “OpenLayers.js” aus dem lib-Ordner benutzen ?!

Ich nutze doch auch die Mapnik-Kacheln von “openstreetmap.org”, da nützt es mir doch recht wenig, wenn ich die “OpenStreetMap.js” lokal anlege, oder liege ich da falsch? Wenn OSM ausfällt, dann geht doch beides nicht, oder?

map.addLayer(new OpenLayers.Layer.OSM.Mapnik("Mapnik"));

Auf jeden Fall eine interessante Idee:

Irgendwo möglichst weit oben in deinem JS einfach mal “OpenLayers.Lang.setCode(‘de’);” eingeben. Dann übersetzt OL mit Hilfe der Regeln aus “lib/OpenLayers/Lang/de.js”.

jo stimmt wohl,

aber wenn du dem Anwender in deiner Anwendung auch andere Layer anbietest, die nicht auf openstreetmap.org liegen, gibt es dennoch Probleme beim Laden deiner HTML-Seite. Sein Browser will den Script ja auf jeden Fall laden, unabhängig davon, welches Layer der Anwender dann gerade aktiviert hat.

Aber eigentlich müsste er ja zuerst den lokalen Chache des Anwenders verwenden (?).

Plattenplatz sollte ja wirklich nicht der Grund sein. Das einzige, was mir so einfällt, ist ein Internetanschluß @home mit niedriger Bandbreite. Deshalb ja auch mein “Fallback-Versuch”.

Gruss
walter

Das leuchtet ein, besser nur ein leerer OL-Kasten (div) als gar keine Ansicht der Internetseite. Danke für die Erläuterung.

Sorry, aber das läuft bei mir nicht. In meinem eigenen Script führt dies zu keiner veränderten Übersetzung und in der OpenLayers.js funktioniert OL gar nicht mehr :frowning: Muss ich eventuell die viel kleinere “OpenLayers.js” im Unterverzeichnis “OpenLayers” dafür nutzen/ansprechen?


<script type="text/javascript">
    OpenLayers.Lang.setCode('de');
    var lat=51.0;
    var lon=13.0;
    var zoom=7;
    var map; 
    function init() {
    map = new OpenLayers.Map ("map", {
      controls:[
              new OpenLayers.Control.Navigation(), 
              new OpenLayers.Control.PanZoomBar({zoomStopHeight: 6}),
							new OpenLayers.Control.LayerSwitcher(),
              new OpenLayers.Control.ScaleLine({bottomOutUnits: "", bottomInUnits: ""}),
              new OpenLayers.Control.Attribution(),
              new OpenLayers.Control.OverviewMap({minRatio: 10})],
          maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
          maxResolution: 156543.0399,
          numZoomLevels: 19,
          units: 'm',
          projection: new OpenLayers.Projection("EPSG:900913"),
          displayProjection: new OpenLayers.Projection("EPSG:4326")
           } );
            layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
			      map.addLayer(layerMapnik);
            map.addLayer(new OpenLayers.Layer.OSM("Höhenschattierung", "http://toolserver.org/~cmarqu/hill/${z}/${x}/${y}.png" , {numZoomLevels: 17, isBaseLayer: false, transparent: true, opacity: 0.9999999999, visibility: true, attribution:'Hillshading by <a href=http://toolserver.org/~cmarqu/hikebike.html>toolserver.org</a>'}));
						layerMarkers = new OpenLayers.Layer.Markers("Standort anzeigen");
						map.addLayer(layerMarkers);
            var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
            map.setCenter (lonLat, zoom);
						var size = new OpenLayers.Size(40,46);
						var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
						var icon = new OpenLayers.Icon('marker.png',size,offset);
						layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
        }
    </script>

Ziemlich brutal - eigenlich sollte er ja die Browsereinstellung des Anwenders nehmen (Chinese in Berlin …).

etwa so: “OpenLayers.Lang.setCode(get_browser_language());” pseudo-code, da ich den aktuellen Namen nicht kenne.

Gruss
walter