Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#8

AW: Google Maps über COM (Component Object Model)

  Alt 31. Dez 2010, 20:57
Beispiel 6
Geometrische Formen: Kreise, Rechtecke, Polygone, Polylines
(auf besonderen Wunsch von DelphiFan2008)

Alle diese Formen sind (JavaScript-)Objekte. Sie werden erstellt, indem ein passendes Options-Objekt angelegt, mit den entsprechende Werten initialisiert und an den Konstruktor des Geometrie-Objektes übergeben wird.
Zwingend notwendig ist die Festlegung der Ausmaße: Beim Kreis wären das der Mittelpunkt und der Radius, beim Rechteck die linke untere (Süd-West) und die rechte obere Ecke (Nord-Ost) und bei den Linienobjekten die Koordinaten der einzelnen Eckpunkte.
In der Regel werden diese Werte in Form von LatLng-Objekten angegeben - die einzige Ausnahme ist der Kreis: Dort wird der Radius in Metern erwartet.
Optional hingegen sind zum Beispiel die Werte für Linienfarbe, -breite und -transparenz.
Soll das Objekt auf einer Karte dargestellt werden, muß ihm (bzw. vor der Erstellung dem Optionsobjekt) die entsprechende Karte zugewiesen werden.
Das könnte zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  CircleOptions: TCircleOptions;
begin
  with Script do
  begin
    CircleOptions:=TCircleOptions.Create; //Zirkeloptions-Objekt erstellen
    CircleOptions.Center:=Google.Maps.LatLng(10,20); //Zirkelmittelpunkt
    CircleOptions.Map:=Maps[0]; //Kartenobjekt zuweisen
    CircleOptions.Radius:=1000; //Radius in Metern
    CircleOptions.StrokeColor:=clRed; //Linienfarbe
    Google.Maps.Circle(CircleOptions); //Zirkel-Objekt erstellen
  end;
end;
Soll das Objekt wieder von der Karte entfernt werden, reicht es aus, seiner Map-Eigenschaft den Wert nil zuzuweisen.

demo_6.jpg

Compilierte Exe und Quelltext (ohne Exe):
Angehängte Dateien
Dateityp: zip GeometricalObjects.zip (209,8 KB, 426x aufgerufen)
Dateityp: zip Demo_6.zip (20,4 KB, 403x aufgerufen)
Thomas Nitzschke

Geändert von Thom ( 3. Jan 2011 um 12:11 Uhr)
  Mit Zitat antworten Zitat