You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
Pages: 1
#1 2015-05-30 11:35:21
- Ghostrider82
- Member
- Registered: 2010-05-25
- Posts: 132
KML Datei - einzelne Knoten auslesen
Hallo zusammen,
ich "plotte" eine KML Datei wie folgt auf eine Karte:
map.addLayer (kmllayer = new OpenLayers.Layer.Vector('KML', {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "mapkml.php5?"+Math.random(),
format: new OpenLayers.Format.KML({
extractStyles: true,
extractAttributes: true,
maxDepth: 20
})
})
}))
;
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
Last edited by Ghostrider82 (2015-05-30 11:37:30)
Offline
#2 2015-05-30 12:09:46
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: KML Datei - einzelne Knoten auslesen
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].stylemit dem Stil des Punktes Nr. i oder
kmllayer.features[i].geometryWenn Du Glück hast, auch
kmllayer.features[i].x und yKann ich aber nicht nachsehen, ich habe nur Flächen als kml, keine Punkte hier rumriegen.
Grüße, Max
Last edited by maxbe (2015-05-30 12:10:02)
Offline
#3 2015-05-30 13:56:55
- Ghostrider82
- Member
- Registered: 2010-05-25
- Posts: 132
Re: KML Datei - einzelne Knoten auslesen
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 undefinedSehe ich mal wieder den Wald vor lauter Bäumen nicht?
Last edited by Ghostrider82 (2015-05-30 14:01:58)
Offline
#4 2015-05-30 14:46:55
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: KML Datei - einzelne Knoten auslesen
Uncaught TypeError: Cannot read property 'data' of undefined
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.
Offline
#5 2015-05-30 22:54:11
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: KML Datei - einzelne Knoten auslesen
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...
Last edited by maxbe (2015-05-31 13:41:50)
Offline
#6 2015-06-02 13:09:58
- Ghostrider82
- Member
- Registered: 2010-05-25
- Posts: 132
Re: KML Datei - einzelne Knoten auslesen
Hi Max,
super, dein Beispiel hat mir entscheidend weitergeholfen. Danke dir dafür ;-)
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?
Offline
#7 2015-06-02 14:27:25
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: KML Datei - einzelne Knoten auslesen
Kann ich zu den Markierungen ein DIV an der LonLat Position einblenden?
Ich hab sowas noch nie gebraucht, aber nebenan wurde auf ein Beispiel vom Netzwolf verlinkt, wo er das macht.
Last edited by maxbe (2015-06-02 14:30:18)
Offline
Pages: 1