04-04-2020, Saat: 23:33
(Son Düzenleme: 04-04-2020, Saat: 23:35, Düzenleyen: Fesih ARSLAN.)
Merhaba,
Çalışmanızı biraz daha hızlı sonuçlandıracağına inandığım ve
birçok harita işlemlerinde kullandığım kod yapısını paylaşayım.
Marker eklemek için de aşağıdaki gibi bir metod kullanıyorum.
Çalışmanızı biraz daha hızlı sonuçlandıracağına inandığım ve
birçok harita işlemlerinde kullandığım kod yapısını paylaşayım.
public FMarkers: TList<TMapMarker>; ... procedure TformAna.FormCreate(Sender: TObject); begin FMarkers := TList<TMapMarker>.Create; end; procedure TformAna.FormDestroy(Sender: TObject); begin if Assigned(FMarkers) then FreeAndNil(FMarkers); end; procedure TformAna.SetArsMapViewYenile(); begin If FMarkers.Count > 0 Then frmHarita.MapView1.Location := FMarkers.Last.Descriptor.Position; // else sizin belirleyeceğiniz varsayılan bir konum. end; procedure TformAna.SetArsMarkerSilTumu; Var Marker: TMapMarker; begin Try if (FMarkers <> Nil) And (FMarkers.Count > 0) then Begin for Marker in FMarkers do Marker.Remove; FMarkers.Clear; SetArsMapViewYenile(); End; Except End; end;
Marker eklemek için de aşağıdaki gibi bir metod kullanıyorum.
procedure TfrmHarita.SetArsMarkerEkle(const Position: TMapCoordinate; const Baslik: String; TumunuSil: Boolean);
var
MyMarker: TMapMarkerDescriptor;
Yer: TMapMarker;
begin
if TumunuSil then
formAna.SetArsMarkerSilTumu();
MyMarker := TMapMarkerDescriptor.Create(Position, 'Yeni Konum');
MyMarker.Draggable := False;
MyMarker.Visible := True;
MyMarker.Title := Baslik;
MyMarker.Snippet := '(' + Position.Latitude.ToString + ' - ' + Position.Longitude.ToString + ')';
Yer := MapView1.AddMarker(MyMarker);
formAna.FMarkers.Add(Yer);
MapView1.Location := Yer.Descriptor.Position;
MapView1.Zoom := 11;
end;
Kullanım şekliSetArsMarkerEkle(Position, 'Adresim', True);
DelphiCan'dır!

