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);