ONC Map
The ONC map is Operational Navigation Chart map designed for pilots that flying at 2000 to 25000 ft. [1] The one in Falcon 4 BMS is created by Olivier "Red Dog" Beaumont. [2] It has the most important information that a pilot needs including latitude, longitude lines, airbase, airstrip etc. Moreover, it can be used to identify bullseye location.
One usage of it during a flight is to be able to visualize the location of the ownship thus provide more information for the pilot to make decision like which nearest airbase to land. Another usage could be act an the front-end of a command and control display system to present the relevant information needed by the commander, package leader or flight leader or even the individual pilot.
A sample ONC map used by the Korea theater in Falcon BMS:
While I was playing the tactical engagement missions, I often having trouble to find a place to land after hearing the BINGO warning. While the pre-planned original/alternative airbase might be at the first and last steerpoint, seeking to land at the nearest airbase/airstrip might be a time saving and interesting alternative. Before finding the nearest landing facility, the current position of the aircraft is needed. This information can be viewed from the INS ICP page. The location of the ownship can then be estimated on the map using the lat/long parallel lines. Finally, the nearest landing facility is found by the naked eyes. Although the process is not hard but time is never that critical when the plane is running out of fuel.
Initially, I loaded the falcon executable into a static disassembler that has minimum PDB support that can map classes, functions and variables name. More detailed data structure can be viewed using windbg though. Later I sent an email to Red Dog and he pasted a snippet of code that I believed to be originated from Lightning's Falcon4 library in .NET. [3]Â From there I clearly see the data structure and field name and the meaning that speeds up the development. Also the theater map pixel to latitude and longitude conversion routine with meaningful variable names taught me the things I need to know to draw things to the map given a latitude and longitude and vice versa.
In fact, the Falcon ownship information is in unit of feet from the map origin already. The following calculation from latitude and longitude is used for other purposes like locating the airstrip, airbase and anything else given a latitude and longitude pair.
Conversion from latitude, longitude to map pixel
The map is 2048 x 2048 pixels and about 1640 feet per pixel. The map has a reference point at the bottom left as the map origin, such that by finding the north and east feet from the map origin, the relative coordinate the map can be calculated. Note that this applies to location with north latitude and east longitude only.
North feet from map origin: (target latitude - reference latitude) * radian per degree * earth radius in feet
East feet from map origin: (target longitude - reference longitude) * radian per degree * earth radius in feet * cosine(target latitude * radian per degree)
Map computer x offset: east feet / 1640
Map computer y offset: 2048 - (north feet / 1640)
Korea ONC map with the latitude and longitude parallel lines drew in red using the formula above:
A draft version is made to plot the ownship location to the ONC map in a browser(at bottom right, blue triangle):