Hallo Ihr Guten,
ich bin gerade dabei mit jQuery und Javasript die Openlayers-Api zu nutzen, um einen Marker oder eine Box an eine beliebige, beim laden der Seite festgelegte Position auf der Standard OpenStreet-map zu setzen.
Das Anzeigen des Markers, der Box sowie der Karte funktioniert schon wunderbar, doch wir weder die Karte auf den richtigen Punkt gestartet, noch die Marker oder Box.
es wird nur die Karte mit 0;0 als Mittelpunkt angezeigt und auch Marker / Box werden auf die Koordinate 0;0 gesetzt.
hat Irgendjemand, eine Idee warum?
hier mal mein Code:
openstreetRectangle : function(param) {
var map, bounds, coords, defaults;
var mapnik = new OpenLayers.Layer.OSM();
defaults = {
n : 50.930985,
s : 50.92991,
w : 11.587115,
e : 11.588392
};
coords = $.extend(defaults, param);
bounds = new OpenLayers.Bounds();
bounds.extend(new OpenLayers.LonLat(coords.w, coords.s));
bounds.extend(new OpenLayers.LonLat(coords.e, coords.n));
map = new OpenLayers.Map("map");
if ((coords.s == coords.n) && (coords.w == coords.e)) {
var marker = new OpenLayers.Layer.Markers("marker");
var size = new OpenLayers.Size(21, 25);
var offset = new OpenLayers.Pixel(-(size.w / 2), -size.h);
var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset);
marker.addMarker(new OpenLayers.Marker(bounds.getCenterLonLat(), icon));
map.addLayer(marker);
// Note that if you pass an icon into the Marker constructor, it will
// take that icon and use it. This means that you should not share icons
// between markers -- you use them once, but you should clone() for any
// additional markers using that same icon.
} else {
var boxes = new OpenLayers.Layer.Boxes("Boxes");
var box = new OpenLayers.Marker.Box(bounds, "#008DCF", 4);
boxes.addMarker(box);
map.addLayer(boxes);
}
map.addLayer(mapnik);
map.setCenter(bounds.getCenterLonLat(), 15);
}
es macht übrigens keinen Unterschied, ob ich bounds.getCenterLonLat() aufrufe oder die Punkte mittels new openlayers.LonLat(…) übergebe.
MfG Basti890