【发布时间】:2017-02-02 17:00:58
【问题描述】:
我有 TMapView 并使用 MapView1.AddMarker(...) 在其上放置了一些 TMapMarkerDescriptors,但我如何才能从中清除地图(删除所有放置的 marers)?
我在文档中找不到 MapView.Clear 之类的东西。
【问题讨论】:
标签: android delphi google-maps-markers android-mapview firemonkey
我有 TMapView 并使用 MapView1.AddMarker(...) 在其上放置了一些 TMapMarkerDescriptors,但我如何才能从中清除地图(删除所有放置的 marers)?
我在文档中找不到 MapView.Clear 之类的东西。
【问题讨论】:
标签: android delphi google-maps-markers android-mapview firemonkey
好的,这很好用
var
mar : array of TMapMarker;
procedure TForm1.clear_markers;
var
i:integer;
begin
if high(mar) > -1 then
for i:=0 to high(mar) do
if Assigned(mar[i]) then
mar[i].Remove;
setlength(mar,0);
end;
此代码在循环中放置了标记。 变量 loc 和 s 从数据库中加载
setlength(mar,length(mar)+1);
Descr := TMapMarkerDescriptor.Create(loc, s);
mar[high(mar)]:=MapView1.AddMarker(Descr);
【讨论】:
据我所知,您似乎必须单独删除每个标记,这意味着您必须存储对您创建的 TMapMarker 对象的引用。 TMapMarker(MapView1.AddMarker 调用的结果)有两种方法。 “Remove”从地图中移除标记,而“DisposeOf”将从地图中移除标记并释放 TMapMarker 对象。
【讨论】: