Liste mit den Markern

Hallo,

ich habe nun eine Karte mit OpenLayers erstellt, in der verschiedene Marker eingezeichnet sind.
wie ist es nun möglich eine Liste dieser Marker an den Rand zu schreiben, sodass ein Klick oder Mousover auf einen Eintrag den Popup am richtigen Marker aufkommen lässt?

Danke

Thomas

So sehen meine Dateien aus:

Die HTML Datei:

nun die noch fehlende Teil addmarker aus tom.js:

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, 70) } );
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);
marker.events.register("mouseover", feature, markerClick);
//marker.events.register("mouseout", feature, markerClick);



layer.addMarker(marker);
map.addPopup(feature.createPopup(feature.closeBox));

}

Sowas in dieser Art?
http://www.tatort-rheinland-pfalz.de/aktuelles/die-landkarte/index.html
Beim Klicken auf einen Buchtitel geht eine weitere Liste auf, hier kann dann ein Ort ausgewählt werden.
Statt der neuen Ansicht der Karte müsste dann das Popup geöffnet werden.

Hi, ich habe mir eine Methode jumptoMarker(lat,lon) geschrieben und die wird dann bei klicken auf einen Link an der Seite per onclick Funktion aufgerufen. In der Funktion wir dann ganz normall ein Marker auf der Map erstellt und die Karte zentriert. Die HTML Liste der Marker erstellt mir dabei ein Python Skript.

Einfacher geht es wenn du deine Marker in einem Geo Format ablegst und den Vector Layer nimmst. Der kann die meisten Formate so öffnen und da gibt es so eine Funktion schon fertig (onselect irgendwas…).

Da das Framework den Markern keine Identität gibt, muss man die über ihren Index aus dem Layer abgreifen:

     layer_markers.markers[0]          ← liefert den als ersten deklarierten Marker

Für diesen Marker kann man dann das Mousedown-Event triggern:

      layer_markers.markers[0].events.triggerEvent('mousedown');

Eingebunden sieht das so aus:

Text für ersten Marker
Text für zweiten Marker
[...]

Gruß Wolf

Lege zunächst eine Fläche für Deine Liste im html Body an, z.B.:


Wenn Du Deine Daten zunächst in ein Array schreibst
var dataa=new Array();
dataa.push(new Array(49.8 , 6.73 ,“Text”));

Dann kannst Du sowohl Deine Marker generieren ( wie gemacht),
als auch einen Eintrag in der Liste, wie z.B.:

	var cmd="set("+lat+","+lng+","+lzoom+","+hier+","+ind+" )"; 

	a.setAttribute("href","javascript:"+cmd); 
	document.getElementById("list").appendChild(a);

Ein Beispiel ist zu finden unter

http://www.verlag-smo.de/tat/ta-karte/Multi_Karte_hr6.html