KML Datei - einzelne Knoten auslesen

Hallo zusammen,

ich “plotte” eine KML Datei wie folgt auf eine Karte:

Gibt es eine Möglichkeit, per Javascript einzelne Knoten / Felder einzeln anzusprechen?

Beispiel:

alert(coordinate.knoten[1]);

oder

alert(coordinate.knoten[122]);

Je nachdem, welchen Knoten ich brauche?

Danke und Gruß
Boris

Installiere dir mal einen Debugger Deiner Wahl, Firebug z.B. Chrome hat auch einen ganz brauchbaren, glaube ich. Und dann schau dir die Daten nach dem Laden der KML-Datei an.

Du müsstest dann die Struktur von kmllayer sehen und dort ein Element “kmllayer.features.length”. Das gibt die die Anzahl deiner Punkte an. Und weitere Elemente wie z.B.

kmllayer.features[i].style

mit dem Stil des Punktes Nr. i oder

kmllayer.features[i].geometry

Wenn Du Glück hast, auch

kmllayer.features[i].x und y

Kann ich aber nicht nachsehen, ich habe nur Flächen als kml, keine Punkte hier rumriegen.

Grüße, Max

Super, danke, hätte ich auch selber drauf kommen können, mir einfach das Objekt ausgeben zu lassen.

Ich komme damit aber weiter, schwächel aber nun:

Dazu folgender Screenshot:

Die Ausgabe erhalte ich erst einmal per console.log(layer)

Möchte ich nun an “Knut” herankommen, war mein Gedanke:

console.log(newLineLayer.features[1].data.knut)

Resultiert aber in einem:

Uncaught TypeError: Cannot read property 'data' of undefined

Sehe ich mal wieder den Wald vor lauter Bäumen nicht?

Sicher, dass zu diesem Zeitpunkt das kml schon fertig geladen war? Das läuft ja asynchron im Hintergrund und löst einen “loadend”-event aus, wenn alle Daten da sind. Dieser Event wäre dann auch der richtige Zeitpunkt, knut abzufragen.

Habs ausprobiert, “loadend” ist immer noch zu früh.

Wenn Du zu irgendeinem sehr späten Zeitpunkt die Daten des Punktes brauchst kannst mit einer Schleife bis kmllayer.features.length durchlaufen und den Punkt suchen (geht dann aber auch mit getFeatureBy…. Beim Laden bekommt man nur den Event “onFeatureInsert”, wenn ein neuer Punkt eingelesen wurde. Da könntest eine eigene Buchhaltung deiner Punkte einhängen (Oder wie hier im einfachsten Fall die Namen und Koordinaten ausgeben).

Nachtrag: Ich hatte eine nächtliche Eingebung und noch ein Event “featuresadded” eingebaut. Das kommt nachdem alle Punkte plaziert wurden…

Hi Max,

super, dein Beispiel hat mir entscheidend weitergeholfen. Danke dir dafür :wink:

Anbei gefragt - habe schon in den Netzwolf Beispielen geschaut, wurde aber nicht fündig. Ich habe sowas aber entweder bei dir oder bei ihm schon einmal gesehen.
Kann ich zu den Markierungen ein DIV an der LonLat Position einblenden? Also kein Hover auf einem Marker sondern nur DIV an Position?

Ich hab sowas noch nie gebraucht, aber nebenan wurde auf ein Beispiel vom Netzwolf verlinkt, wo er das macht.