0

У меня есть TMapView и поместил на него некоторые TMapMarkerDescriptors, используя MapView1.AddMarker (...), но как я могу очистить карту (удалить всех помещенных маринов) из нее?Delphi FMX MapView - удалить все маркеры

Я не могу найти что-то в качестве MapView.

ответ

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; 

Маркеры был помещен этот код в цикле. Переменные LOC и s загружаются из базы данных

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

 Смежные вопросы

  • Нет связанных вопросов^_^