0

我有TMapView,並使用MapView1.AddMarker(...)放置了一些TMapMarkerDescriptors,但我如何清除它的地圖(刪除所有放置的marers)?Delphi FMX MapView - 刪除所有標記

我無法在文檔中找到MapView.Clear。

回答

0

看來您必須逐個刪除每個標記,只要我可以告訴,這意味着您必須存儲對您創建的TMapMarker對象的引用。 TMapMarker(MapView1.AddMarker調用的結果)有兩種方法。 「移除」將從地圖中移除標記,而「DisposeOf」將從地圖移除標記並釋放TMapMarker對象。

+0

加載你打我吧。我想補充一點,似乎沒有可行的方法來訪問由Android地圖視圖實現管理的標記集合,以便在它們之間進行有意義的迭代並刪除它們(至少,並非沒有不適當的不可維護的層次)。 – blong

+0

我的問題是:我在數據庫中存儲了標記的座標,有時需要從數據庫中的實際狀態刷新映射。 如何存儲對已添加標記的引用? – milenjao

0

好嗎

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; 

標記在環放置這段代碼能正常工作。 變量祿小號從數據庫

setlength(mar,length(mar)+1); 
Descr := TMapMarkerDescriptor.Create(loc, s); 
mar[high(mar)]:=MapView1.AddMarker(Descr);