Azimuthal Projections Info

Example azimuthal map
Azimuthal projection from ARRL headquarters

This all started when I was interested in calculating the distance and bearing between amateur radio stations. I found this reference on calculating the great circle distance and bearing. Ultimately, this interest led to a web form for producing azimuthal maps.

For those who never heard of an azimuthal map, it is a special kind of map that prioritizes correctly showing the great circle distance and bearing from the center reference point. Azimuthal maps are particularly useful for ham radio operators with a directional antenna. For example, if you’re in Connecticut and you want to talk with someone in Cameroon (Africa), the azimuthal map will tell you to point your antenna to a bearing of 90° on a compass (technically you also must adjust for the difference between magnetic north and true north).

It occurred to me that this the bearing and distance calculation was the fundamental tool for making an azimuthal projection. All I needed was a database of land and political boundaries expressed in latitude/longitude pairs.

The azimuthal project is always made from a particular reference point on the globe, and I can convert the points in the  land and political boundary database into bearing and distance using the great circle calculations. This gives me a collection of points in polar coordinates (r, Θ) which is what I need for the azimuthal projection.

For the land and political boundary information, I used the database from the CIA World Databank II; however, it required some massaging. First it was too detailed, and I had to filter the data to an appropriate resolution. Next, I wanted land masses and water bodies to be represented by closed paths. The CIA World Databank II is a collection of unconnected paths, so I had to write a program to patch them together and reorder the points to be clockwise. Having closed paths of points ordered in clockwise orders is necessary to have water and land colored differently. Lastly, I had to identify which closed paths represent land and which represent water. Unfortunately, this work is incomplete. You’ll notice some lakes that aren’t colored blue.

Initially, my Ruby program was generating raw PostScript. However, I recognized that it would be easier for people to use if it generated a PDF.  Rather than using a Postscript to PDF convertor, I changed to generating PDFs directly using the Ruby PDF::Writer. By using PostScript or PDF, I get vector graphic output that is scalable from small to very large sizes without having to make a huge raster graphic files.  There is a limit to the resolution of the continent & political outline data, so at very large sizes, the outlines may not appear smooth.

Ultimately, I used the great circle distance formula from Wikipedia. According the article, it’s accurate for both long and short distances.

The hardest part of the whole project was getting the water blue. There are still some maps where the program gets it wrong, and you’ll see weird coloring. Things tend to go wrong when the reference point is inside a particular small region of land or water. In these cases, the floating  point accuracy seems to cause the colors approach to fail.

My plans for future improvements include:

  • add small tables of bearing & distance for important world cities around the margins
  • add US and world cities to the map (particularly for area map)
  • adjusting political boundaries and labels to be more accurate
  • adding more views to allow people to report lakes that aren’t colored correctly

421 thoughts on “Azimuthal Projections Info”

  1. Hi, what you’ve provided is a wonderful and useful tool… Many thanks for that.
    Also, is it possible to import regular map data, say google maps, with roads and markings.

    Your response is appreciated… TIA

  2. Just got this error:
    “Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

    More information about this error may be available in the server error log.”

  3. Thank you. Your information is wonderfully concise among the unfocused internet.

    btw, I am newly FRN 0032053464 in training at the Anne Arundel Radio Club in Davidsonville, MD.

  4. Fabulous job. I wish I had this tool back in the 70’s when I was a teenager into CB & DXing across the world with my homemade 5 element Yagi.
    Back then I managed to get a GC map centred on Sydney, which is 1000km from my location of Melbourne, but it was close enough to get my antenna bearings close enough.

  5. Hi there,
    love the azimuthal chart creator. Just one question..

    Would it be possible to include an option where users can input lat and long co-ordinates that create little coloured map pins (of locations of interest) within the azimuthal chart?

    That would be great to print out as a PDF…

    And worthy of my donation to your good work 😉

    Warm Regards,

    Bobby G.

    1. Thanks for the recommendation. If you would like to do the programming to add this feature, I would be happy to work with you.

      73 de Tom NS6T

  6. There is something really weird going on with Fiji.
    Centre the map near Korolevu e.g. -17.809870626695197, 177.90002248298418, and the island to the northeast has a bit sliced off by a straight edge northeast-southwest.
    Centre the map on the island, or in the water nearby, or off to the south, e.g. -16.703120358351537, 178.9190224210907; -16.502657779991786, 179.7862365944284; -17.67941619556715, -178.81925617462636; or in Tokyo or Pearl Harbor and weirdness happens.

  7. Sir:
    1st Thanks for creating such a truly cool and helpful mapping system.
    2nd I would like your permission to incorporate and suggest your pages/maps use in a Net procedure manual I am drafting. Your tool really makes the idea I am illustrating much more achievable for the regular ham.
    If you need additional information about my request, Please contact me at


Leave a Reply

Your email address will not be published.