You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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.***

#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].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

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:

console_log_baum_kml.png

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?

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

Ghostrider82 wrote:

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

Ghostrider82 wrote:

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

Board footer

Powered by FluxBB