AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi XE8 MapView-Komponente

Ein Thema von geosucher · begonnen am 7. Mai 2015 · letzter Beitrag vom 7. Mai 2015
Antwort Antwort
geosucher

Registriert seit: 28. Aug 2006
36 Beiträge
 
#1

Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 10:31
Hallo zusammen,

bin gerade am testen von RADStudio XE8. Finde die neue TMapView-Komponente sehr interessant, besonders, dass man neben den üblichen Markern auch Punkte, Polylinien und Polygone in die Karte eintragen kann.
Genau hier liegt mein Problem: Es gibt eine Property AddPolygon, übergeben wird ihr das Objekt TMapPolygonDescriptor.
Ich verstehe nur nicht, wie ich in den TMapPolygonDescriptor meine x Koordinaten bekomme???

Falls jemand da schon weiter ist, wäre ich für Tipps dankbar.

Gruß

Geosucher
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 10:50
Outline klingt nicht schlecht?
http://docwiki.embarcadero.com/Libra...ygonDescriptor
http://docwiki.embarcadero.com/Libra...criptor_Fields
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:06
Oder wenn man sich ganz einfach den constructor anschaut
Delphi-Quellcode:
type
  TMapPolygonDescriptor = record
    Outline: TMapPolygonPolyvertex;
    Holes: TArray<TMapPolygonPolyvertex>;
    Geodesic: Boolean;
    FillColor: TAlphaColor;
    StrokeColor: TAlphaColor;
    StrokeWidth: Single;
    ZIndex: Single;
    class function Create(const Outline: TArray<TMapCoordinate>): TMapPolygonDescriptor; static;
    procedure AddHole(const Points: TArray<TMapCoordinate>);
  end;
Aha, ein Array vom Typen
Delphi-Quellcode:
type
  TMapCoordinate = record
    Latitude: Double;
    Longitude: Double;
    class function Create(const Latitude: Double; const Longitude: Double): TMapCoordinate; overload; static; inline;
    class function Create(const Point: TPointF): TMapCoordinate; overload; static; inline;
    class function Zero: TMapCoordinate; static; inline;
    function ToString: string;
  end;
Wozu so eine Dokumentation nicht alles gut ist ... (oder hier hätte auch ein STRG-Klick auf den Typen gereicht)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
geosucher

Registriert seit: 28. Aug 2006
36 Beiträge
 
#4

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:28
Hallo himitsu,

danke für die schnelle Antwort.
Die Idee hatte ich auch schon. Ich hatte folgendes probiert:

Delphi-Quellcode:
procedure TTabbedForm.CornerButton1Click(Sender: TObject);
var Plg : TMapPolygonDescriptor;
    Outline : System.TArray<TMapCoordinate>;
begin
 Plg:=TMapPolygonDescriptor.Create(Outline);
 SetLength(Outline,5);
 Outline[0]:=TMapCoordinate.Create(51.35619, 12.58328);
 Outline[1]:=TMapCoordinate.Create(51.35620, 12.58328);
 Outline[2]:=TMapCoordinate.Create(51.35620, 12.58329);
 Outline[3]:=TMapCoordinate.Create(51.35619, 12.58329);
 Outline[4]:=TMapCoordinate.Create(51.35619, 12.58328);
 MapView1.AddPolygon(Plg);
end;
Allerdings steht der Debugger mit mir noch auf dem Kriegsfuß (oder andersrum). Sobald ich den Button drücke,
verschwindet die App im Nirwana.

Gruß

Geosucher
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:30
Die Reihenfolge passt nicht. Versuchs doch mal so:

Delphi-Quellcode:
procedure TTabbedForm.CornerButton1Click(Sender: TObject);
var Plg : TMapPolygonDescriptor;
    Outline : System.TArray<TMapCoordinate>;
begin
 SetLength(Outline,5);
 Outline[0]:=TMapCoordinate.Create(51.35619, 12.58328);
 Outline[1]:=TMapCoordinate.Create(51.35620, 12.58328);
 Outline[2]:=TMapCoordinate.Create(51.35620, 12.58329);
 Outline[3]:=TMapCoordinate.Create(51.35619, 12.58329);
 Outline[4]:=TMapCoordinate.Create(51.35619, 12.58328);
 Plg:=TMapPolygonDescriptor.Create(Outline);
 MapView1.AddPolygon(Plg);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:31
Versuch mal
Delphi-Quellcode:
procedure TTabbedForm.CornerButton1Click(Sender: TObject);
var Plg : TMapPolygonDescriptor;
    Outline : System.TArray<TMapCoordinate>;
begin
 SetLength(Outline,5);
 Outline[0]:=TMapCoordinate.Create(51.35619, 12.58328);
 Outline[1]:=TMapCoordinate.Create(51.35620, 12.58328);
 Outline[2]:=TMapCoordinate.Create(51.35620, 12.58329);
 Outline[3]:=TMapCoordinate.Create(51.35619, 12.58329);
 Outline[4]:=TMapCoordinate.Create(51.35619, 12.58328);
 Plg:=TMapPolygonDescriptor.Create(Outline);
 MapView1.AddPolygon(Plg);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:44
Jupp, das sind Records und keine Objekte/Zeiger ... die werden bei Übergabe komplett kopiert und nachträgliches Füllen wird da nicht mehr beachtet.
$2B or not $2B
  Mit Zitat antworten Zitat
geosucher

Registriert seit: 28. Aug 2006
36 Beiträge
 
#8

AW: Delphi XE8 MapView-Komponente

  Alt 7. Mai 2015, 11:49
Hallo,

ja danke- das war's. Jetzt noch etwas sinnvollere Koordinaten und es funktioniert. Bin beeindruckt.

Danke!

Geosucher
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz