News from OpenFlights, the site for flight logging, mapping, stats and sharing


Airport codes and dynamic clusters, oh my

Codes and clusters demoToday OpenFlights rolls out a very simple feature indeed: airport codes are now shown on the map, right next to each airport.  Better yet, if you happen to forget what “BHX” or “NTQ” stands for, just hover your mouse over the airport icon and it will pop up a label reminding you that they’re “Birmingham, United Kingdom” and “Wajima-Noto, Japan” respectively.

But wait, there’s more!  To speed things up a bit and reduce clutter on screen, we’ve also rolled out a funky feature called dynamic clustering.  In plain English, this means that if you’ve got a lot of airports smushed up into a small space, OpenFlights will now show only a single airport on your map.  There are two ways to know that there’s more here than meets the eye:

  1. If one airport is more important than the others (has more flights), that airport will be shown as the usual but with a “+” character added to the code, like “SIN+“.
  2. If all airports are roughly the same size, they will be shown with a special cluster icon .

In either case, just click on the airport icon to get a list of all airports, and then you can pick the one you wanted.  Alternatively, just zoom in and the hidden airports will magically show up.

One final change: the simple-yet-oh-so-confusing hand/lasso (“select/region”) map controls are now history and OpenFlights is now always in “select” mode, where a single click selects airports and a double click zooms.  If you want to select a region to zoom into, hold down the Shift key, then click and pull the selection rectangle.

Making all this happen required an upgrade to our OpenLayers mapping software and a lot of poking about in the background (an excruciatingly detailed technogeek explanation can be found here), so please do let us know ASAP if anything seems wonky.  Feedback about the clustering is also welcome: is it great, terrible or somewhere in between?  The current cluster rule is “3 or more airports within 15 pixels get clustered”, should we be more aggressive or more laid-back?

Dynamically clusterphobic,


Comprehensive airline route data released

One of OpenFlights‘ most popular features is our dynamic airport and airline route mapping, and today, we’re proud to release the underlying data in an easy-to-use form, up to date for October 2009.  Behold 56749 routes between 3310 airports on 669 airlines spanning the globe:

The data can be downloaded from our Data page and is free to use under the Open Database License.  In addition to IATA and ICAO codes for airlines/airports, which can be difficult to use due to controlled duplicates and code recycling, we also include the unique OpenFlights identifiers that can be used for easy cross-referencing to our airline and airport databases.  So, for example, a route map entry like this:

BA,1355,SIN,3316,LHR,507,,0,744 777

Can be cross-referenced to the name, codes and country of airline 1355:

1355,"British Airways",N,"BA","BAW","SPEEDBIRD","United Kingdom","Y"

As well as the name, codes, location and even timezone of airports 507 and 3316:

507,"Heathrow", "London", "United Kingdom", "LHR", "EGLL", 51.4775,-0.461389,83,0,"E"
3316,"Changi Intl", "Singapore", "Singapore", "SIN", "WSSS", 1.350189,103.994433,22,8,"U"

As always, we’d like to thank the folks at Airline Route Mapper for doing the hard work of collecting and maintaining the route data, all we’re doing is repackaging and providing it online.

Routing for the winners,

Leave a comment

Airline editing implemented

Things have been a little quiet in OpenFlightsLand lately — this doesn’t mean we haven’t been doing anything, it’s just that it’s mostly been unglamourous bugfixing that doesn’t really warrant blog updates.

But we do have a small new feature today: in addition to our existing airport editor, we have now enabled editing for airlines as well.  The same restriction applies, namely that you have to be logged in and can only edit airlines you have added yourself.  We’ve also made public a previous hidden field that reveals whether or not the airline is considered “active”, active airlines being those that either have published routes or flights recorded within the last year in OpenFlights.  Inactive airlines will not be offered by autocompletion.

What would you like to see next?  Let us know at OpenFlights’ Feature Request Tracker.


Leave a comment

Ahora disponible en español, agora disponível em português

OpenFlights has just launched two very important language versions:

  • Spanish (español), courtesy of Luis F Nueckel
  • Portuguese (português), courtesy of László de Miranda Pinto

A round of applause to our volunteers, and please do help spread the word by posting to blogs and aviation forums in these languages.

OpenFlights is already available in 11 languages spanning the globe, but there are still many others left.  Want to help us add another language? It’s easier than you think, just take a look at the instructions and let us know if you’re interested.

* * *

In other news, the OpenFlights team will be going on summer vacation for the next few weeks and recording a few flights of their own, so responses may be a little less lightning-fast than usual.  We’ll be back in full force by mid-August.

Enjoy relaxing time,

1 Comment

Route mapping improvements

Just a quick heads-up for a few route mapping improvements:

  • Airline maps now default to not showing codeshare flights, which makes them much clearer and faster to load and manipulate for most airlines.  If you do want to display codeshares as well, just toggle the Carrier filter from “XX-operated” to “XX and codeshares”.
  • Airlines without IATA codes and those deemed “inactive” (with no known routes and no flights in the past few years) no longer show up in Quick Search results, since there are no route maps for these and thus nothing to display.  (They are still accessible as usual from the flight editor though.)
  • The maps are no longer resized to fit when you change the airline filter, which makes switching between airlines quite a bit faster.

Two small bugs were also swatted:

  • Searches for airports with no known routes work again, so you can at least see where in the world it is.
  • Airports are now only ghosted if they are entirely codeshare destinations.

And one more known issue:

  • Currently OpenFlights does not distinguish between actual and codeshared routes when counting an airport’s routes, leading to some double-counting .  After some deliberation, I’ve decided to keep it this way, mostly due a limitation in the route data: there are quite a few cases where we know that airline X has a codeshare on a route, but we do not have the actual operating carrier’s data.  Filtering out codeshares would remove these from the map entirely, which would be — in my opinion — a larger problem than the incorrect count.

Any more bugs to fix or improvements you’d like to see?  Drop us a line.

Step by step,


Airline route maps launched, metric distances available

Our recently released airport route maps have been a huge hit, so we’ve now followed through on our promise and released airline route maps as well: just enter your favorite airline’s name or IATA code in the Quick Search to get their route map. As an example, here’s Slovene national airline Adria Airways (JP):

But there’s more!

  • Filters are now implemented for airport route maps, so you can see where a given airline flies to from a given airport.  Just search for an airport, then choose Carrier from the Filter menu on the right.
  • If you choose an airline map, or an airport-filtered-by-airline map, codeshare flights are now indicated with dotted lines to show that the airline does not “really” fly on that route.  (Still on the to-do list: the ability to hide codeshare destinations.)

The second new feature launched today has been our most requested feature for a while now: the ability to display distances in kilometers as well as miles.  New users can select their preference when creating an account, while existing users can go to Settings to change to kilometers if they wish.  If enabled, the main map statistics, the “Analyze” and “Top 10” statistics and “List flights” all display kilometers; however, flight distances in the flight editor are still always in miles.

With this, OpenFlights will now be entering a feature freeze in preparation for the OpenFlights Epsilon release targeted for the end of August.  The goals of Epsilon are:

  1. Shake out bugs and usability quirks to create a solid, reliable, and easy-to-use website
  2. Improve airport, airline and route database quality
  3. Make installing your own copy of OpenFlights easier by modularizing and documenting the OpenFlights software base

You can do your part by reporting any bugs you encounter.  Translators, we’ve added some new strings to OpenFlights, so your assistance in updating them would be appreciated.

Onward to the Epsilon,

1 Comment

German, Lithuanian, Polish and Swedish are here!

Today, I have the great pleasure of almost doubling the number of languages supported by OpenFlights.  Now launched are:

A round of applause to our volunteers, and please do help spread the word by posting to aviation forums in these languages.  Corrections and additions to the existing translations are also welcome, the Polish translation in particular is still a little incomplete.

But the job is not over yet, we’re always looking for new languages to add.  Spanish, Portuguese, Chinese or Arabic, anyone?  As a reminder, translation is quick, easy and non-technical, and instructions can be found here.

And a minor note: we’ve changed a few icons in the interface to make them clearer.  Now you can click on the top right corner  for map options, or the lower right corner for the minimap control.

Paskutinieji pridėti skrydžiai,


Route mapping the world

So far OpenFlights has been all about mapping your own travels and seeing where others have been to, but today, we’ve taken a big step in making it your tool of choice for travel planning as well.   Now, you can click on any airport and see every single scheduled flight:

OpenFlights route map

For easy access to this, we’ve added a Quick search widget, shown expanded above but normally hiding in the bottom-right corner under the icon.  Here’s how to use it, in two easy steps:

  1. Enter the airport name, city or IATA code in the box.  OpenFlights will automatically suggest matches as you type, and if the airport is already shown on the map, OpenFlights will pop it up.
  2. Once you’ve entered a valid name, the Search button becomes active.  If you click on this, OpenFlights will load a route map showing all flights from that airport.

But there’s more!  In the popup for every airport, there’s now a Routes button, which you can also use to see the map.  If you click on the List button for the mapped airport (via popup or the top left corner), you’ll get a list of all flights operating from there; if you click on that button for another airport, you’ll get a list of all airlines connecting the two, even including codeshares.

In these route listings, you’ll see little buttons, which will take you to flight booking site with a preloaded search for the airports and airline that you have selected.  Buy your ticket from here, and OpenFlights get a little commission; just another little way to help support the site.

So, with the good stuff out of the way, it’s time to confess to a few things that we can’t do, at least not yet.

  • The route map covers routes, not schedules.  We don’t know exact flight days, times or route numbers; however, click through to Kayak, and it can usually tell you.
  • The route map covers non-stop flights only.  Singapore Airlines flies SIN-ICN-SFO, but if you click on SIN, you’ll only see the first leg.
  • The route map does not support route finding.  If there’s no direct connection, we can’t find it for you… yet.
  • Route maps are offered per airport, not per airline (although this is on the to-do list).
  • Filters, Analyze, Top 10 etc don’t work on route maps (yet?).  If you try to use them, it will just show you the data for your flights.

Last but by no means least, our thanks to our colleagues at Airline Route Mapper; without their amazing 53,000-route data file, this would never have been possible.

Routing for victory,

Leave a comment

French and Russian now available

The French (français) and Russian (по русски) translations of OpenFlights are now complete.  Merci beaucoup to Mathieu Marquer for the first and спасибо большое to Alexey Aslanyants for the second!

In addition, German and Polish translations are currently in the works. Can you help us with another language, or did you find something that doesn’t sound or look quite right in the current versions? Send me mail.

Last but not least, we know there are still some parts of the interface that are not translated yet, notably the Help section and a few pulldown options.  We’re working on these and hope to have them rolled out sometime next week as well.

Looking for cunning linguists,

1 Comment

Think global, act localized

After tonight’s upgrade, OpenFlights can now support languages other than English, and we’re starting off with two: Finnish (suomi) and Japanese (日本語).  French, German and Russian are also coming soon, and we’re looking for people to help us translate other languages (more on that below).

To try out a different language, simply select it from the Language pulldown before logging in.  All existing users are still set to default to English; if you want to change this, just browse to your Settings and change the language there.

And a disclaimer: this upgrade entailed changing, quite literally, every single part of OpenFlights, so please let us know immediately if you run into any sort of error, garbage string or mistranslation.

How you can help

Creating a translated version of OpenFlights does not require any special technical skills: you just need to translate about 400 strings, mostly short but some long. You do not need to translate everything, and translating even a small part would be very helpful; somebody else can easily continue from where you left off.  All users who help will get free elite level access for a year!  Here is how you can do it:

0) Mail info at and let us know you’re interested in translating; this will help avoid duplicated effort.

1) Download and edit POEdit, a specialized editor for translation. It’s free, and versions are available for Windows, Linux and Mac.

2a) To create a new language, download a copy of this blank template:

2b) To edit an existing language, browse the “locale” directory here and find the “messages.po” file for it:

For example, English is under “en_US/LC_MESSAGES/messages.po”.
3) Load the .po file in POEdit.

4) From the “View” menu, activate “Show comments window“, so you can see comments about what strings mean.

5) Translate! Just Press CTRL-Arrow Up/Down to move between entries.

Style pointers

– Especially for short entries, try to roughly match the length of the existing string. If the English uses an abbreviation (“Reg.”), keep the translation short.

– The special strings %s, %1, %2, %3 etc are automatically filled in by OpenFlights. Keep them in the translated string, but you can change the order if you want:

"Results %1 to %2 of %3" --> "Total %3 hits, last result %2, first result %1"

– HTML markup like <tag>text</tag> or <%s>link</a> is used in some entries. Do not change content between < and >, but do translate everything else, including text inside tags. Again, you can change the order:

"<font>Blue</font> is a delicious cheese" --> "Un fromage delicieux, c'est <font>Bleu</font>"
"Look, <%s>my favorite site</a>!" --> "<%s>Lempisaittini</a>, katso!"

– If you get a “Fatal error” when saving, don’t worry, it’s not fatal at all, you’ve just typed an extra ” or % character somewhere and your changes have been saved just fine.  We can easily fix these for you.

When finished, or just tired, mail the revised .po file back and we’ll put it up for your review.

Speaking your language,