Einzelnen Beitrag anzeigen

manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#216

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

  Alt 13. Apr 2012, 14:46
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;
Danke, für den superschnellen Tipp.
Funktioniert einwandfrei.

Manfred
  Mit Zitat antworten Zitat