[erledigt] MapView PointsOfInterest

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
juelin
Lazarusforum e. V.
Beiträge: 362
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

[erledigt] MapView PointsOfInterest

Beitrag von juelin »

Hallo,
ich muss in meinem Programm in der MapView unter
PointsOfInterrest 999 TMapPointsOfInterest eintagen. (Eintrag hinzufügen).
Das kann ich natürlich händisch machen, aber das ist mir zu viel arbeit.
Gibt es eine Möglichkeit das per Programm zu machen?
Zusätlich muss auch das Ereignis OnDrawPoint gefüllt werden.
Gerne mit Beispielcode.
Danke und Gruß
Jürgen
Zuletzt geändert von juelin am Di 24. Mär 2026, 21:40, insgesamt 1-mal geändert.


Benutzeravatar
juelin
Lazarusforum e. V.
Beiträge: 362
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: MapView PointsOfInterest

Beitrag von juelin »

Hallo wp_xyz,
habe mal Dein Vorschlag ausprobiert.

Code: Alles auswählen

      for h6:=1 to 3 do
      begin
//      MapView1.Layers[0].PointsOfInterest.Add as TMapPointOfInterest;
        TMapPointOfInterest.Create(MapView1.Layers[0].PointsOfInterest);
      end;
Bei dem ersten Befehl (Add) bekomme ich bei der Compelierung
die Fehlermeldung: unit1.pas(560,71) Error: Illegal expression
Wenn ich den Befehl auskommentiere (wie oben)
läuft das Programm zwar, aber es werden durch den Create KEINE Points angelegt.
Hast Du eine Erklärung?
Danke und Gruß
Jürgen

Benutzeravatar
juelin
Lazarusforum e. V.
Beiträge: 362
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: MapView PointsOfInterest

Beitrag von juelin »

Hallo wp_xyz,
muss mich korregieren (Sorry).
Das Anlegen von Points klappt zwar,
aber ich kann die neuen Points nicht im Objectinspector sehen.
Gibt es da einen Trick?.
Danke und Gruß
Jürgen

wp_xyz
Beiträge: 5411
Registriert: Fr 8. Apr 2011, 09:01

Re: MapView PointsOfInterest

Beitrag von wp_xyz »

Keine Ahnung, vielleicht hast du keine Layer erzeugt? Im beigefügten Beispiel funktionierts.
Dateianhänge
add_points_of_interest.zip
(6.45 KiB) 20-mal heruntergeladen

wp_xyz
Beiträge: 5411
Registriert: Fr 8. Apr 2011, 09:01

Re: MapView PointsOfInterest

Beitrag von wp_xyz »

juelin hat geschrieben: Di 24. Mär 2026, 17:18 Hallo wp_xyz,
muss mich korregieren (Sorry).
Das Anlegen von Points klappt zwar,
aber ich kann die neuen Points nicht im Objectinspector sehen.
Gibt es da einen Trick?.
Danke und Gruß
Jürgen
Das ist doch immer so: alles was du zur Laufzeit per eigenem Code erzeugst, ist im Objektinspektor nicht sichtbar.

Benutzeravatar
juelin
Lazarusforum e. V.
Beiträge: 362
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: MapView PointsOfInterest

Beitrag von juelin »

Hallo wp_xyz,
Du sagst das ist immer so (zur laufzeit erzeugte Komponeten werden nicht im
Objectinspektor angezeigt).
Gibt es da vielleicht eine Möglichkeit die Komponenten trotzdem
im Objectenspektor an zu zeigen?
Ich möchte kontrollieren ob das Ereignis OnDrawPoint richtig besetzt ist.
Danke und Gruß
Jürgen

wp_xyz
Beiträge: 5411
Registriert: Fr 8. Apr 2011, 09:01

Re: MapView PointsOfInterest

Beitrag von wp_xyz »

Die Punkt-Koordinaten und den Titel musst du händisch im Objekt-Inspektor eintragen. Der Punkt wird dann automatisch mit Kreuz und Beschriftung angezeigt. Die Text-Positionierung kann mit TextPositionHor und TextPositionVert geändert werden. Das OnDrawPoint-Event wird zur Entwurfszeit nicht ausgeführt, denn das was man zur Entwurfszeit sieht, wird von der IDE gezeichnet, aber die IDE kennt deinen OnDrawPoint-Code nicht. Wenn du etwas anderes als das Kreuz sehen willst, kannst du Icons in einer ImageList hinterlegen, diese der POIImages-Property des MapViewers zuweisen und das für den Punkt gewünschte Bild in dessen ImageIndex angeben. Oder, wenn alle Punkte dasselbe Symbol haben können, z.B. eine rote Ellipse, kannst du diese mit einem Mal-Programm zeichnen und als png-Datei mit durchsichtigem Hintergrund als Datei speichern. Über MapView.POIImage kannst du dieses Bild dann einlesen, und es wird bei allen POIs verwendet.

Antworten