0

TMapViewを使用し、MapView1.AddMarker(...)を使用してTMapViewをいくつか配置しましたが、マップをクリアするにはどうすればいいですか?Delphi FMX MapView - すべてのマーカーを削除

ドキュメンテーションでは、MapView.Clearというものが見つかりません。

答えて

0

あなたが作成したTMapMarkerオブジェクトへの参照を保存する必要があるため、各マーカーを個別に削除する必要があります。 TMapMarker(MapView1.AddMarker呼び出しの結果)には2つのメソッドがあります。 "Remove"はマップからマーカーを削除し、 "DisposeOf"はマーカーをマップから削除してTMapMarkerオブジェクトを解放します。マーカーは、ループ内で、このコードによって置かれた

var 
    mar : array of TMapMarker; 

procedure TForm1.clear_markers; 
var 
i:integer; 
begin 
for i:=0 to high(mar) do 
    begin 
    mar[i].Remove; 
    end; 
setlength(mar,0); 
end; 

+0

からロードされています。私は、Androidマップビューの実装で管理されているマーカーのコレクションにアクセスできる実用的な方法はないと思って追加しました。(少なくとも、不適切なレベルの維持不能なものではないからです。 – blong

+0

私の問題は次のことです。マーカーの座標をデータベースに保存しました。データベース内の実際の状態からマップを更新する必要があることがあります。 追加されたマーカーへの参照をどのように保存できますか? – milenjao

0

大丈夫、これは正常に動作します。 変数LOCは、あなたはそれに私を打つデータベース

setlength(mar,length(mar)+1); 
Descr := TMapMarkerDescriptor.Create(loc, s); 
mar[high(mar)]:=MapView1.AddMarker(Descr); 
関連する問題