--
package GPS_Coordonates_Manager is new Ada.Containers.Vectors(Positive, Gps_Coordonates_Type, "=" );
use GPS_Coordonates_Manager;
function Solid_List (Side : in Side_Type;
Ray : in Float;
Distance : in Float) return GPS_Coordonates_Manager.Vector is
Terra : GPS_Coordonates_Manager.Vector;
Diametre : constant Float := Ray * 2.0;
Perimetre : constant Float := (Pi * Diametre) / 1852.0;
D : Float := (1.0/60.0) * (Distance);
Count_Of_Equator : constant Long_Long_integer := Long_Long_integer((Perimetre/D) * (360.0*60.0));
rest : Long_Long_Integer := Count_Of_Equator;
Y : Decimal_Latitude_Type := -90.0;
X : Decimal_Longitude_Type := -180.0;
begin
Text_Io.Put_Line("P =" & Float'Image(D));
Text_Io.Put_Line("count_of_equator =" & Long_Long_integer'Image(Count_Of_equator));
for I in 1..Rest/2 loop
for J in 1..rest loop
declare
Gps : Gps_Coordonates_Type := To_Gps(X, Y);
begin
if Side_Of(GPS) /= Side then
Terra := Terra & GPS;
end if;
end;
-- Text_Io.Put_Line("X := " & Float'Image(X));
exit when X + D > 180.0;
X := X + D;
end loop;
--Text_Io.Put_Line("Y := " & Float'Image(Y));
X := -180.0;
exit when Y + D > 90.0;
Y := Y + D;
end loop;
return Terra;