|
| 1 | +import { LineString, Polygon } from "geojson" |
| 2 | +import { |
| 3 | + BridgeType, |
| 4 | + FeatureType, |
| 5 | + GroundSurfaceType, |
| 6 | + LineColor, |
| 7 | + LineDirection, |
| 8 | + LineStyle, |
| 9 | + Status, |
| 10 | + StopbarCategory, |
| 11 | +} from "../enums" |
| 12 | +import { AmdbFeature } from "./types" |
| 13 | + |
| 14 | +/** |
| 15 | + * Surface of a Taxiway |
| 16 | + * |
| 17 | + * Taxiway elements do not include taxiway shoulders and aircraft parking/stand areas |
| 18 | + * |
| 19 | + * A TaxiwayElement should be limited by the outer side of the taxiway edge marking |
| 20 | + * |
| 21 | + * Taxiway elements are not divided by surface type |
| 22 | + */ |
| 23 | +export type TaxiwayElement = AmdbFeature< |
| 24 | + { |
| 25 | + /** |
| 26 | + * Object identifier **(not unique)** |
| 27 | + * |
| 28 | + * Represents the name of the taxiway segment. If two or more taxiways intersect, their intersection should be a seperate TaxiwayElement whose `idlin` will come from the predominant taxiway. If the intersection has a specific name, the `idlin` should be that |
| 29 | + * |
| 30 | + * Example: `A5` |
| 31 | + */ |
| 32 | + idlin: string | null |
| 33 | + |
| 34 | + /** |
| 35 | + * The name of the apron on which this taxiway is located, if any |
| 36 | + * |
| 37 | + * Example: `Terminal Ramp` |
| 38 | + */ |
| 39 | + idapron: string | null |
| 40 | + |
| 41 | + /** |
| 42 | + * Generic surface type of the taxiway |
| 43 | + * |
| 44 | + * Example: `Asphalt: 2` |
| 45 | + */ |
| 46 | + gsurftype: GroundSurfaceType |
| 47 | + |
| 48 | + /** |
| 49 | + * Indicates whether the taxiway is a bridge, and if so, what kind of bridge it is |
| 50 | + * |
| 51 | + * Example: `Overpass: 2` |
| 52 | + */ |
| 53 | + bridge: BridgeType |
| 54 | + |
| 55 | + /** |
| 56 | + * Weight bearing capability of the surface |
| 57 | + * |
| 58 | + * Encoded as `Airport classification number - pavement classification number`, as specified in ICAO Annex 14, Chapter 2.6 |
| 59 | + * |
| 60 | + * Example: `PCN72/F/B/X/T` |
| 61 | + */ |
| 62 | + pcn: string | null |
| 63 | + |
| 64 | + /** |
| 65 | + * Usage restriction (prohibited) for specific aircraft type according to `ICAO-ACN (ICAO-DOC. 8643)` |
| 66 | + * |
| 67 | + * Encoded as aircraft type according to ICAO-ACN. If there is more than one aircraft-type restriction, the different types should be divided by a `.` |
| 68 | + * |
| 69 | + * Example: `B744.A380` |
| 70 | + */ |
| 71 | + restacn: string | null |
| 72 | + |
| 73 | + /** |
| 74 | + * Permanent state of feature (exceeding the AIRAC-cycle of 56 days) |
| 75 | + * |
| 76 | + * Non-permanent closures or outages of less than 56 days are not adressed in the airport maping database but will be addressed via NOTAMS |
| 77 | + * |
| 78 | + * Example: `Open: 1` |
| 79 | + */ |
| 80 | + status: Status |
| 81 | + }, |
| 82 | + FeatureType.TaxiwayElement, |
| 83 | + Polygon |
| 84 | +> |
| 85 | + |
| 86 | +/** |
| 87 | + * An area adjacent to the edge of a taxiway so prepared as to provide a transition between the pavement and the adjacent surface |
| 88 | + * |
| 89 | + * The taxiway shoulder polygon should exclude the taxiway edge marking |
| 90 | + */ |
| 91 | +export type TaxiwayShoulder = AmdbFeature< |
| 92 | + { |
| 93 | + /** |
| 94 | + * Permanent state of feature (exceeding the AIRAC-cycle of 56 days) |
| 95 | + * |
| 96 | + * Non-permanent closures or outages of less than 56 days are not adressed in the airport maping database but will be addressed via NOTAMS |
| 97 | + * |
| 98 | + * Example: `Open: 1` |
| 99 | + */ |
| 100 | + status: Status |
| 101 | + |
| 102 | + /** |
| 103 | + * Generic surface type of the taxiway |
| 104 | + * |
| 105 | + * Example: `Asphalt: 2` |
| 106 | + */ |
| 107 | + gsurftype: GroundSurfaceType |
| 108 | + }, |
| 109 | + FeatureType.TaxiwayShoulder, |
| 110 | + Polygon |
| 111 | +> |
| 112 | + |
| 113 | +/** |
| 114 | + * Represents a guidance line painted on a taxiway |
| 115 | + * |
| 116 | + * Taxiway guidance lines (taxilines) are refered to in `ICAO Doc. 9157` as taxiway centrelines |
| 117 | + * |
| 118 | + * See definition `ICAO Annex 14, CHapter 5.2.8` |
| 119 | + * |
| 120 | + * Taxiway guidance lines shall exclude exit lines and aircraft stand guidance taxilines |
| 121 | + */ |
| 122 | +export type TaxiwayGuidanceLine = AmdbFeature< |
| 123 | + { |
| 124 | + /** |
| 125 | + * Object identifier **(not unique)** |
| 126 | + * |
| 127 | + * Represents the name of the guidance line |
| 128 | + * |
| 129 | + * Note that this value will **ALWAYS** match the `idlin` of the `TaxiwayElement` that this guidance line is contained within, which is not always representative, especially at intersections. This means the `idlin` is not garunteed to match the exact name of the line in the real world |
| 130 | + * |
| 131 | + * The above is not neccessarily true for RunwayExitLines |
| 132 | + * |
| 133 | + * Example: `A5` |
| 134 | + */ |
| 135 | + idlin: string | null |
| 136 | + |
| 137 | + /** |
| 138 | + * Permanent state of feature (exceeding the AIRAC-cycle of 56 days) |
| 139 | + * |
| 140 | + * Non-permanent closures or outages of less than 56 days are not adressed in the airport maping database but will be addressed via NOTAMS |
| 141 | + * |
| 142 | + * Example: `Open: 1` |
| 143 | + */ |
| 144 | + status: Status |
| 145 | + |
| 146 | + /** |
| 147 | + * Maximum wingspan allowed on the taxiway, measured in **meters** |
| 148 | + * |
| 149 | + * Example: `35.66` |
| 150 | + */ |
| 151 | + wingspan: number |
| 152 | + |
| 153 | + /** |
| 154 | + * Maximum speed allowed on the taxiway, measured in **knots** |
| 155 | + * |
| 156 | + * Example: `17.00` |
| 157 | + */ |
| 158 | + maxspeed: number |
| 159 | + |
| 160 | + /** |
| 161 | + * The color of the painted taxiline |
| 162 | + * |
| 163 | + * Example: `Orange: 1` |
| 164 | + */ |
| 165 | + color: LineColor |
| 166 | + |
| 167 | + /** |
| 168 | + * Style of the painted taxiline |
| 169 | + * |
| 170 | + * Example: `Dashed: 1` |
| 171 | + */ |
| 172 | + style: LineStyle |
| 173 | + |
| 174 | + /** |
| 175 | + * Directionality of the corresponding taxiway |
| 176 | + * |
| 177 | + * Example: `StartToEndpoint: 1` |
| 178 | + */ |
| 179 | + direc: LineDirection |
| 180 | + }, |
| 181 | + FeatureType.TaxiwayGuidanceLine, |
| 182 | + LineString |
| 183 | +> |
| 184 | + |
| 185 | +/** |
| 186 | + * A marking painted at a position at which taxiing aircraft and vehicles are expected to stop and hold until further cleared to proceed, when instructed so by the aerodrome control tower |
| 187 | + * |
| 188 | + * TaxiwayIntersectionMarkings will only protect a non-runway location |
| 189 | + * |
| 190 | + * The line shall be located at the center of the painted ground marking for single line markings or at the outer edge of the painted ground marking away from the protected surface |
| 191 | + * |
| 192 | + * See definition: `ICAO Annex 14, chapter 5.2.11` |
| 193 | + */ |
| 194 | +export type TaxiwayIntersectionMarking = AmdbFeature< |
| 195 | + { |
| 196 | + /** |
| 197 | + * Object Identifier **(not unique)** |
| 198 | + * |
| 199 | + * Will match the `idlin` of the `TaxiwayElement` that this intersection marking is located on, unless it has an otherwise identifiable name |
| 200 | + * |
| 201 | + * Example: `A5` |
| 202 | + */ |
| 203 | + idlin: string | null |
| 204 | + }, |
| 205 | + FeatureType.TaxiwayIntersectionMarking, |
| 206 | + LineString |
| 207 | +> |
| 208 | + |
| 209 | +/** |
| 210 | + * A marking painted at a position intended to protect a runway, an obstacle limitation surface, or an ILS/MLS critical/sensitive area at which taxiing aircraft and vehicles are expected to stop and hold unless otherwise authorized by the aerodrome control tower. |
| 211 | + * |
| 212 | + * See definition: `ICAO Annex 14, chapter 5.2.10` |
| 213 | + * |
| 214 | + * Shall be located at the outer edge of the painted ground marking away from the corresponding runway |
| 215 | + */ |
| 216 | +export type TaxiwayHoldingPosition = AmdbFeature< |
| 217 | + { |
| 218 | + /** |
| 219 | + * Object Identifier **(not unique)** |
| 220 | + * |
| 221 | + * Will match the `idlin` of the `TaxiwayElement` that this holding position is located on, unless it has an otherwise identifiable name |
| 222 | + * |
| 223 | + * Example: `A5` |
| 224 | + */ |
| 225 | + idlin: string | null |
| 226 | + |
| 227 | + /** |
| 228 | + * Code describing the low visiblity operation category of the holding position |
| 229 | + * |
| 230 | + * Example: `Cat1: 1` |
| 231 | + */ |
| 232 | + catstop: StopbarCategory |
| 233 | + |
| 234 | + /** |
| 235 | + * Permanent state of feature (exceeding the AIRAC-cycle of 56 days) |
| 236 | + * |
| 237 | + * Non-permanent closures or outages of less than 56 days are not adressed in the airport maping database but will be addressed via NOTAMS |
| 238 | + * |
| 239 | + * Example: `Open: 1` |
| 240 | + */ |
| 241 | + status: Status |
| 242 | + |
| 243 | + /** |
| 244 | + * Object identifier of the runway or taxiway being protected |
| 245 | + * |
| 246 | + * For runway holding positions this will the `idrwy` field, for taxiways it will be the `idlin` field |
| 247 | + * |
| 248 | + * Example: `07L.25R` |
| 249 | + */ |
| 250 | + idp: string | null |
| 251 | + }, |
| 252 | + FeatureType.TaxiwayHoldingPosition, |
| 253 | + LineString |
| 254 | +> |
0 commit comments