schmalhans: Openstreetmap - eigene Marker setzen

Hallo!

Ich habe einige Stunden damit verbracht, folgende Probleme zu lösen, leider ohne Erfolg.

Ich möchte erstens einen Marker setzen, die Grafik soll aber von mir stammen.

Ausgangspunkt ist folgender Code, den ich aus dem OSM-wiki von DE_layers habe:

  
layer_markers = new OpenLayers.Layer.Markers("Address", { projection: new OpenLayers.Projection("EPSG:4326"),visibility: true, displayInLayerSwitcher: false });  
  
map.addLayer(layer_markers);  
layer_markers.setVisibility(true);  
addMarker(layer_markers, lon, lat, popuptext);  
  
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(200, 120) } );  
    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);  
}

Hier klappt auch alles mit dem Setzen des Markers, wenn ich diesen anklicke, erscheint auch der Infotext zum Marker.

Nun würde ich hier gern irgendwie eine eigene Marker-Grafik einbinden. Dazu habe ich aber keinen Ansatzpunkt gefunden.

Und zweitens wollte ich gern noch, dass der Infotext nicht in einem "FramedCloud" erscheint, sondern in einem "AnchoredBubble".

Das habe ich durch  folgenden Code auch hinbekommen:
    feature.popupClass = OpenLayers.Class(OpenLayers.Popup.AnchoredBubble);
Wo ich dann verzweifelt bin, war, die Größe des Bubbles zu ändern.

So wie ich http://dev.openlayers.org/docs/files/OpenLayers/Popup/AnchoredBubble-js.html verstanden habe, hätte das auf irgendeine Art und Weise mit

    var size = new OpenLayers.Size(100,17);  
    XXXXX.setSize(size);

gehen müssen.
Ich habe für XXXXX alles ausprobiert, ich habe es nicht hinbekommen,.
Egal ob

  • feature.setSize(size);
  • feature.popupClass.setSize(size);
  • ll.setSize(size);
  • OpenLayers.Popup.AnchoredBubble.setSize(size);
  • AnchoredBubble.setSize(size);
    nichts davon funktioniert.

Kennt sich da jemand aus bzw. hat selber schon mal was gemacht?
Kann mir evtl. jemand zu den beiden Sachen einen Tipp geben?

Vielen Dank
Andi