Ich verwende eine Tmaps Karte und lade Marker hinzu aus einer Datenbank.
Derzeit bin ich bei etwa 300 Markern und merke schon wie die App in die Knie geht, also ruckelt... es dauert immer länger bis die Marker geladen sind je mehr es sind. Der normale betrieb der App ist kein Problem aber das Laden macht Probleme.
Wende ich dann einen Filter an, macht sich das richtig bemerkbar.
Ich habe eine ähnliche App aus dem Markt und dort kann man viele hundert Marker einladen ohne das sich das irgendwie bemerkbar macht.
Habt ihr ein paar Tipps was ich tun kannn damit das bei meiner App auch funktioniert?
Hier mal meine Prozedur um die Datenbank zu lesen:
Code:
// Datenbank lesen
procedure TTabbedwithNavigationForm.read_database;
var
lat, lon : String;
Position: TMapCoordinate;
begin
sqlquery1.SQL.Clear;
SQLQuery1.SQL.Text := 'SELECT * FROM p_marker ORDER BY Min';
SQLQuery1.Active := true;
SQLQuery1.First;
while not SQLQuery1.Eof do begin
if not SQLQuery1.IsEmpty then begin
lat := sqlquery1.FieldByName('Lat').Asstring;
lon := sqlquery1.FieldByName('Lon').Asstring;
lat := stringreplace(lat,'.',',',[rfReplaceAll]);
lon := stringreplace(lon,'.',',',[rfReplaceAll]);
position.Latitude := strtofloat(lat);
position.Longitude:= strtofloat(lon);
maxtime := sqlquery1.FieldByName('Min').AsInteger +20;
if maxtime >60 then
maxtime := maxtime -60;
mapview1.BeginUpdate;
MyMarker := TMapMarkerDescriptor.Create(Position, sqlquery1.FieldByName('Name').Asstring+' :'+format('%.2d',[sqlquery1.FieldByName('Min').Asinteger])+'-'+format('%.2d',[maxtime]));
MyMarker.Draggable := False;
if sqlquery1.FieldByName('Type').AsString ='bl' then
MyMarker.Icon := Image1.Bitmap;
if sqlquery1.FieldByName('Type').AsString ='rd' then
MyMarker.Icon := Image2.Bitmap;
if sqlquery1.FieldByName('Type').AsString ='blu' then
MyMarker.Icon := Image3.Bitmap;
if sqlquery1.FieldByName('Type').AsString ='ye' then
MyMarker.Icon := Image4.Bitmap;
MyMarker.Visible :=True;
Fmarkers.Add(MapView1.AddMarker(MyMarker));
sqlquery1.Next;
end;
end;
mapview1.EndUpdate;
end;
mapview.beginupdate bringt leider nicht den gewünschten erfolg ähnlich bei grid's .