x

Marker Details in Div auflisten


  1. Marker Details in Div auflisten · mylama (Gast) · 23.03.2011 23:16 · [flux]

    Hallo OSM Users : ),

    ich habe dynamische POIs mit Popups , die ich von meiner MySQL Datenbank mit PHP abrufe.
    Das funktioniert auch alles super, nur möchte ich davon ca. 10 POI's als liste in ein Div ausgeben.

    So hole ich mir die Informationen so:
    POI = new OpenLayers.Layer.Vector("POI", {
    strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
    protocol: new OpenLayers.Protocol.HTTPex({url: "poi.php?",
    format: new OpenLayers.Format.Text()
    })
    ,transparent: true, isBaseLayer:false, maxResolution: 39
    });
    selcontrol = new OpenLayers.Control.SelectFeature(POI,{onSelect: createPopup,onUnselect: destroyPopup});
    map.addControl(selcontrol);
    selcontrol.activate();

    Welches event löst die Marker aus , wenn sie in der Karte hinzugefügt werden?
    Ich habe schon loaded, und so probiert, aber irg. was mach ich wieder was falsch ; ).
    Bei onSelect , onUnselect funktioniert es ja auch ?

    Hier ist auch der Quellcode falls ich was vergessen habe zu sehen:
    http://www.linkstore-webkatalog.de/maps … 00904.html

    Wäre für ein Tip sehr dankbar : )!


    • Re: Marker Details in Div auflisten · MHohmann (Gast) · 24.03.2011 07:58 · [flux]

      Wenn ich mich nicht täusche, heißt das passende Event "loadend" und nicht "loaded" - analog zu "moveend" und "zoomend", die du ja bereits in deinem Quellcode hast. Einbinden müsstest du das etwa in folgender Weise:

      POI.events.register("loadend", POI, Funktionsname);


    • Re: Marker Details in Div auflisten · mylama (Gast) · 24.03.2011 19:16 · [flux]

      Hallo MHohmann,

      hast recht, es heißt loadend : ).

      POI.events.register("loadend", POI, Funktionsname);

      Hab ich jetzt getestet, leider ist aber mein Feature dann null.
      Deswegen vermute ich das ich es hier lösen muss oder ?
      selcontrol = new OpenLayers.Control.SelectFeature(POI,{onSelect: createPopup,onUnselect: destroyPopup});

      Hier habe ich die Daten noch, aber bei OpenLayer habe ich kein passendes Beispiel gefunden : (.


    • Re: Marker Details in Div auflisten · mylama (Gast) · 24.03.2011 20:34 · [flux]

      POI.events.register("featureadded", POI, function(evt){
      var txt = txt+"<br />"+"<div class=\"tagcloudbody\"><h2>"+evt.feature.attributes.title+"</h2>"+evt.feature.attributes.description+"</div>";
      pushContent(txt);
      });

      Wobei hier nur das letzte POI angezeigt wird, weil die txt variable überschrieben wird.

      aber ohne dein Ansatz würde ich wahrscheinlich noch immer dran sitzen ; )


    • Re: Marker Details in Div auflisten · MHohmann (Gast) · 24.03.2011 22:22 · [flux]

      Ah, stimmt, in dem Fall lädst du ja keinen Layer, sondern fügst Features in einen bestehenden Layer ein - deshalb das andere Event 😉