Also ich habe mir meinen vorhandenen Code angesehen und ihn mit dem Beispielcode verglichen.
Das ist mein Code:
function addMarker(layer, lon, lat, popupContentHTML) {
var ll = new OpenLayers.LonLat(Lon2Merc(lon), Lat2Merc(lat));
var feature = new OpenLayers.Feature(layer, ll);
feature.closeBox = true;
feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {minSize: new OpenLayers.Size(180, 180) } );
feature.data.popupContentHTML = popupContentHTML;
feature.data.overflow = "hidden";
var marker = new OpenLayers.Marker(ll);
marker.feature = feature;
var markerClick = function(evt) {
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
OpenLayers.Event.stop(evt);
};
marker.events.register("mousedown", feature, markerClick);
layer.addMarker(marker);
schaut im html dann bei mir so aus:
map = new OpenLayers.Map('map', {
projection: new OpenLayers.Projection("EPSG:900913"), //Geodaten
displayProjection: new OpenLayers.Projection("EPSG:4326"), //Geodaten
controls: [
new OpenLayers.Control.Navigation(), //Einbinden des
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar()],
maxExtent:
new OpenLayers.Bounds(-20037508.34,-20037508.34,
20037508.34, 20037508.34),
numZoomLevels: 18,
maxResolution: 156543,
units: 'meters'
});
layer_mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
layer_markers = new OpenLayers.Layer.Markers("Address", { projection: new OpenLayers.Projection("EPSG:4326"),
visibility: true, displayInLayerSwitcher: false });
map.addLayers([layer_mapnik, layer_markers]);
jumpTo(lon, lat, zoom);
// Position der Marker
//Betteln
addMarker(layer_markers, 9.9387, 49.7684, popuptextbetteln);
addMarker(layer_markers, 9.9587, 49.7684, popuptextbetteln);
addMarker(layer_markers, 9.9787, 49.7884, popuptextbetteln);
addMarker(layer_markers, 9.9587, 49.7884, popuptextbetteln);
addMarker(layer_markers, 9.9888, 49.8000, popuptextbetteln);
addMarker(layer_markers, 9.9355, 49.7800, popuptextbetteln);
addMarker(layer_markers, 9.9155, 49.7800, popuptextbetteln);
addMarker(layer_markers, 9.9355, 49.7900, popuptextbetteln);
addMarker(layer_markers, 9.9375, 49.7850, popuptextbetteln);
addMarker(layer_markers, 9.9355, 49.7800, popuptextbetteln);
addMarker(layer_markers, 9.9405, 49.7850, popuptextbetteln);
addMarker(layer_markers, 9.9255, 49.7800, popuptextbetteln3);
//Position der Motels
addMarker(layer_markers, 9.9588, 49.8000, popuptextbetteln2);
addMarker(layer_markers, 9.9488, 49.7800, popuptextbetteln2);
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
das ist der Code wie er auf der von Ihnen verlinkten Webseite aufgeführt wird:
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
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);
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone()));
Mir fehlen also im obrigen Beispiel Variablen wie icon oder offset bzw. icon. Ich habe verstanden, dass man hier über den Konstruktor einen neuen Marker erstellt und scheinbar das Bild im Parametern übergibt. Daher komme ich zu dem Schluss, dass es nicht in den Java Script Teil meines Codes gehört, sondern in den html. Ich hab jetzt einiges probiert, leider zeigt mir Chrome keine Veränderung an meiner Webseite.
Schade. Hatte mich echt gefreut und dachte die Lösung wäre so einfach.
Gibt es vielleicht noch einen anderen Weg?
Scheinbar arbeite ich hier mit einer anderen Version als von euch veranschlagt…
Hoffe jemand weiss warum es bei mir nicht funktioniert.
Vielen Dank!
LG Triceps