20-04-2022, Saat: 02:51
Merhaba, bir adet array'im var ve bu array içinde kordinatlar mevcut.
Her kordinatın bir önceki kordinat arasındaki mesafeyi alarak toplam mesafeyi hesaplıyorum.
Array içindeki veri sayısı 5000'den fazla olursa uygulama kapanıyor. (Tam değeri bilmiyorum 5000 veya 6000 den fazla yapabiliyorum 5000 yapınca sorun yok fakat 6000 yapınca uygulama çöküyor)
Büyük ihtimalle hatalı kullanım yapıyorum, hata ne olabilir?
Ayrıca aşağıdaki satırı çıkarınca crash yemiyorum
Her kordinatın bir önceki kordinat arasındaki mesafeyi alarak toplam mesafeyi hesaplıyorum.
Array içindeki veri sayısı 5000'den fazla olursa uygulama kapanıyor. (Tam değeri bilmiyorum 5000 veya 6000 den fazla yapabiliyorum 5000 yapınca sorun yok fakat 6000 yapınca uygulama çöküyor)
Büyük ihtimalle hatalı kullanım yapıyorum, hata ne olabilir?
for I := 0 to length(logGeçişNoktaları) - 1 do begin nextway := nextway + 1; if nextway = 2 then begin nextway := 1; tempdistance := trunc(Get2KoordinatToMetre(logGeçişNoktaları[i - 1], logGeçişNoktaları[i])); if tempdistance > 20 then begin distance := distance + tempdistance; end; end; end; lbl_distance.Text := trunc((trunc(distance) * (0.00062137119223733))) .ToString + ' Mil'; end;
Function Get2KoordinatToMetre(Bas, bit: TMapCoordinate): EXTENDED; begin Result := RadToDeg(ArcCos(sin(DegToRad(Bas.Latitude)) * sin(DegToRad(bit.Latitude)) + Cos(DegToRad(Bas.Latitude)) * Cos(DegToRad(bit.Latitude)) * Cos(DegToRad(Bas.Longitude - bit.Longitude)))) * 60 * 1.1515 * 1.609344 * 1000; end;
Ayrıca aşağıdaki satırı çıkarınca crash yemiyorum
tempdistance := trunc(Get2KoordinatToMetre(logGeçişNoktaları[i - 1], logGeçişNoktaları[i]));