OpenAir import of all types supported by FlyIsFun

If you have an idea how to improve application, post it here...

OpenAir import of all types supported by FlyIsFun

Postby RogerF » 26 Aug 2018, 11:00

Currently, FlyIsFun (FIF) is able to import the following airspace types/classes in OpenAir format:

A Controlled/Class A
B Controlled/Class B
C Controlled/Class C
CTR Controlled/Class D
D Controlled/Class D
P Special Use/Prohibited
Q Special Use/Danger
R Special Use/Restricted

Two types existing in OpenAir are not supported; the reason is simply that such airspace types do not exist in FIF:
GP (Glider Prohibited)
W (Wave Window)

Two types not defined in the official OpenAir documentation can be imported in FIF; they are rather logical and I am happy to use them:
E Controlled/Class E
G Controlled/Class G

Proposal: Would it be possible to define OpenAir "AC" codes to import all type/classes existing in FIF?
Here are the suggested codes:

ATZ ATZ class
BIRD Bird
DROP Paradropping
F Controlled/Class F
FIR FIR
GOLF Golf
PARK Park
PAT Pattern
RMZ Radio mandatory
TMZ Transponder mandatory
UNK Class UNK

Currently, as a workaround, I define such airspaces using an OpenAir "AC" type supported by FlyIsFun, and after the import I manually correct the type.
This works, but it is a rather heavy and error prone procedure.

Thank you in advance, Petr, for considering my proposal. 8-)
User avatar
RogerF
 
Posts: 131
Joined: 11 Sep 2016, 20:48

Re: OpenAir import of all types supported by FlyIsFun

Postby kitercuda » 30 Aug 2018, 04:45

Thanks Roger,
I am working on upgrade now, I will try to implement it...
User avatar
kitercuda
Administrátor
 
Posts: 1297
Joined: 11 Apr 2012, 11:25

Re: OpenAir import of all types supported by FlyIsFun

Postby kitercuda » 02 Sep 2018, 08:56

Version 21.25 will have these possibilities:

switch (airspaceType.toUpperCase()) {
case "R": ai.mType = AirspaceItem.ZODAN; ai.mClass = AirspaceItem.ZODAN_RESTRICTED; return true;
case "Q": ai.mType = AirspaceItem.ZODAN; ai.mClass = AirspaceItem.ZODAN_DANGER; return true;
case "P": ai.mType = AirspaceItem.ZODAN; ai.mClass = AirspaceItem.ZODAN_PROHIBITED; return true;
case "A": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_A; return true;
case "B": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_B; return true;
case "C": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_C; return true;
case "D": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_D; return true;
case "E": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_E; return true;
case "F": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_F; return true;
case "G": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_G; return true;
case "ATZ": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_ATZ; return true;
case "CTR": ai.mType = AirspaceItem.ZONE_CONTROLLE; ai.mClass = AirspaceItem.CLASS_D; return true;
case "TMZ": ai.mType = AirspaceItem.TMZ; ai.mClass = AirspaceItem.TMZ_UNDEFINED; return true;
case "RMZ": ai.mType = AirspaceItem.RMZ; ai.mClass = AirspaceItem.RMZ_UNDEFINED; return true;

case "BIRD": ai.mType = AirspaceItem.ARA; ai.mClass = AirspaceItem.ARA_UNDEFINED; return true;
case "ARA": ai.mType = AirspaceItem.ARA; ai.mClass = AirspaceItem.ARA_UNDEFINED; return true;
case "DROP": ai.mType = AirspaceItem.PARA; ai.mClass = AirspaceItem.PARA_UNDEFINED; return true;
case "PARA": ai.mType = AirspaceItem.PARA; ai.mClass = AirspaceItem.PARA_UNDEFINED; return true;
case "FIR": ai.mType = AirspaceItem.FIR; ai.mClass = AirspaceItem.FIR_UNDEFINED; return true;
case "GOLF": ai.mType = AirspaceItem.GOLF; ai.mClass = AirspaceItem.GOLF_UNDEFINED; return true;
case "PARK": ai.mType = AirspaceItem.PARK; ai.mClass = AirspaceItem.PARK_UNDEFINED; return true;
case "PAT": ai.mType = AirspaceItem.PATTERN; ai.mClass = AirspaceItem.PATTERN_AIRPORT; return true;

default: ai.mType = AirspaceItem.UNDEFINED_SPACE; ai.mClass = AirspaceItem.CLASS_UNDEFINED; return true;
}

In case of new type of airspace it will be imported, but marked as undefined - default: ...
User avatar
kitercuda
Administrátor
 
Posts: 1297
Joined: 11 Apr 2012, 11:25

Re: OpenAir import of all types supported by FlyIsFun

Postby RogerF » 02 Sep 2018, 09:26

Excellent, thank you Petr!

I will test all when the version is released.
User avatar
RogerF
 
Posts: 131
Joined: 11 Sep 2016, 20:48

Re: OpenAir import of all types supported by FlyIsFun

Postby RogerF » 16 Sep 2018, 21:05

I have tested all types with success in version 21.25
(except of course GP and W, but the latter can now be imported; they are simply defined as type = Unknown, which is OK as these type do not exist in FIF.

Thank you for the implementation ! 8-)
User avatar
RogerF
 
Posts: 131
Joined: 11 Sep 2016, 20:48


Return to User suggestions

Who is online

Users browsing this forum: No registered users and 11 guests

cron