Forum: PC-Programmierung OpenLayers: Wie spezifische Marker löschen?


von Rooney B. (rooney)


Lesenswert?

Hallo!

Ich habe da ein kleines, für mich unlösbares Problem.

Ich möchte auf einer Map Marker anzeigen. Diese Marker sollen 
irgendwelche Geräte mit GPS darstellen. Diese Geräte speichere ich in 
einer Datenbank (MySQL) ab. Die Informationen zu diesen Geräten erhalte 
ich via Transceiver über serielle Schnittstelle, d.h. die einzelnen 
Geräte kommunizieren mit einem Masterdevice um deren Position bekannt zu 
geben.
Ändert sich die Position des Geräts, ändere ich den Datenbankeintrag und 
möchte den Marker auf der Map entsprechend aktualisieren. Dazu schicke 
ich meinem Programm, welches für das Anzeigen der Marker auf der Map 
zuständig ist, den entsprechenden Datenbankeintrag. Der Eintrag enthält 
eine eindeutige ID und die Positionsdaten.
Wie kann ich nun auf der Map den entsprechenden Marker finden? Offenbar 
gibt es keine Möglichkeit dem Marker eine Kennung zu geben. Ideal wäre, 
wenn man dem Marker bei Erstellung die Geräte-ID als Kennung mitgibt und 
man dann einfach auf der Map den Marker mittels Geräte-ID sucht.
Wird ein neues Gerät hinzugefügt, füge ich einen Marker mit der 
Geräte-ID hinzu.
Wird die Position des Geräts aktualisiert, such ich den Marker auf der 
Map und aktualisiere dessen Position.

Hat irgendjemand eine Idee wie man das lösen könnte? Ich habe leider von 
Javascript nicht allzu viel Ahnung, deswegen werde ich ohne Hilfe wohl 
nichts an der OpenLayer API ändern können.

lg
Rooney

von Karl H. (kbuchegg)


Lesenswert?

Wenn du einen Marker erzeugst, darfst du das Marker Objekt nicht einfach 
danach sich selbst überlassen, sondern trägst es bei dir in einer 
Dtaenstruktur ein. In dieser Datenstruktur machst du auch die Zuordnung 
deiner wie auch immer gearteten ID zum Marker.

> Wird die Position des Geräts aktualisiert, such ich den Marker
> auf der Map und aktualisiere dessen Position.

Nicht auf der Map, in deiner Datenstruktur! Dort kriegst du dein 
Markerobjekt wieder her. Und dann teilst du diesem Objekt mit, dass sich 
seine Position verändert hat (oder aber, dass es zu löschen ist)


Ein fertiges Framework bedeutet nicht, dass du selbst keinerlei Arbeit 
mehr mit Datenstrukturen hast!

von Rooney B. (rooney)


Lesenswert?

Ok, d.h. die OpenLayers API unterstützt dies nicht bereits von Haus aus.

Gibt es bei Javascript so etwas wie verkettete Listen, oder gibt es 
bereits irgendwelche Datenstrukturen, die für meine Ansprüch verwendbar 
sind? Sorry für die blöde Frage, aber mit Javascript hatte ich bis jetzt 
noch nichts zu tun.
Ich würde es auch gerne vermeiden, mir jetzt Javascript beizubringen nur 
um zu testen ob das geht. Mir reichen ein paar Keywords, dann kann ich 
gezielt googlen.

Danke!

lg
Rooney

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.