Einzelnen Beitrag anzeigen

Thom

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

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

  Alt 13. Apr 2012, 14:56
Ahh - natürlich. Kommando zurück.
Da Du ja schon die Koordinaten vorliegen hast, brauchst Du nicht mehr den Geocoder zu bemühen:

Delphi-Quellcode:
procedure Tfrm_map.btn_Encode_batchClick(Sender: TObject);
var
  LatLng: TLatLng;
  Lat, Lng: String;
  Marker: TMarker;
  MarkerOptions: TMarkerOptions;
begin
  with Script do
  begin
    Marker:=nil; //falls keine Daten in der Tabelle vorliegen
    DM_map.Map.First;
    while not DM_map.Map.Eof do
    begin
      Lat:=DM_map.Map.FieldByName('POS_LAT').AsString;
      Lng:=DM_map.Map.FieldByName('POS_LNG').AsString;
      LatLng:=New(Google.Maps.LatLng(StrToFloatDef(Lat,0,'.'),
                                     StrToFloatDef(Lng,0,'.')));
      MarkerOptions:=TMarkerOptions.Create;
      with MarkerOptions do
      begin
        Map:=Maps[0];
        Position:=LatLng;
      end;
      Marker:=New(Google.Maps.Marker(MarkerOptions));
      MarkerOptions.Free; //momentan noch etwas auf den Speicher achten
                          //-> in der neuen Version stelle ich auf Interfaces um,
                          //so daß die Freigabe automatisch erfolgt
      LatLng.Free; //gleicher Grund
      DM_map.Map.Next;
    end;
    if assigned(Marker)
      then Maps[0].SetCenter(Marker.GetPosition); //nur den letzten Marker zentrieren
  end;
end;
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom (13. Apr 2012 um 15:03 Uhr)
  Mit Zitat antworten Zitat