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 much 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

291 thoughts on “Azimuthal Projections Info”

  1. Internal Server Error
    Tried to calculate then hopefully print out this map. Wasn’t going to happen:

    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.
    Apache/2.4.25 (Debian) Server at Port 443”

  2. Well im disappointed, while the map seems to show every state of the US (i would want to see the us as one piece the same way it is with other states) some other nations like Azerbaijan aren’t shown.

  3. Dear Tom,
    thanks a lot for providing this tool!
    I’m a SWL from Germany and i own a loop antenna, your map is just what i’ve been looking for.
    Knd Regards,

  4. Is there an easy way to remove the radials and equidistant circle from the center of the map ? I want fourth grade students to compare azimuthal “daylight” on a hemisphere (distance = 10007) with daylight on the cylindrical projection that is used on The radials and circles can be a distraction for little kids.

  5. Hello,

    Great tool, I accidentally came across it while searching for an AE map centered over the N pole that can have plotted coordinates pinpoints.

    Do you have any plans to add something like this to your site? Alternatively, do you know of one?

    Thanks for making this and taking the time to read comments.


  6. Internal Server Error
    Tried to calculate then hopefully print out this map. Wasn’t going to happen:

    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.
    Apache/2.4.25 (Debian) Server at Port 443

  7. The map generator keeps changing my coordinates by a fair amount from 47.225, -122.4030 to 47.133,-122.4010 which is far enough away to mess up pointing directions. Am I doing something wrong?

  8. Thank you for this azimuthal map generator. The maps are beautiful!

    I would like to add dots representing the locations of the stations with which I have made a QSO. I have a QuattroPro spreadsheet that converts the longitude and latitude coordinates of the stations (from qth provided by the ham, or or other web sites) into accurate distances and azimuth. The results are somewhat different from’s results, by I am quite confident in my math. From there, I could manually place the dots on the azimuthal map centered on my station. I have no idea how I could make this process automatic.

    Thank you again, 73, Fred F5OYE

  9. Hi, when centered on Rarotonga and set to a distance of 15000, the blue
    colouring of the ocean is giving odd results. Changing this to 10000 it seems to be okay.

  10. Could there be a log or perhaps cosine distance scale? The directions would remain the same, but it would allow both near and far countries to appear on a single map? The near ones bigger and the far ones squashed up?

    Worth a try?

  11. This. Is. Awsome.
    …and exactly what I was looking for. I now have local, US, and world quick references. Great job!
    Tom W4XF

  12. Generated a peculiar error trying to get Yellowstone Lake as the circumference of “the Flat Earth map” as a joke. Lake got drawn on top of continents, creating vast blue area with lightning-strike zig-zag across centre of image.
    Easiest work-around in my case: make Old Faithful the edge of the world instead.

  13. Is it possible to plot 4 digit grid squares? I’ve clicked Grid Line, but it appears its only 2 digit grid. I would like to generate maps for use in VHF/UHF contests out to 1000 km from my QTH and having this feature would be very useful.

    73 & thanks for this service !

    andyz – K1RA

  14. Hello- I was referred to your website to create an azimuthal map. I am not computer literate nor know how to create this map. I have the latitude and longitude but the map isn’t showing the states on my map.
    Do you create azimuthal maps for a fee if we provide the information to you?

    Thank you for taking the time to read this.

  15. The labeling routine appears not to be working at all. Not the lat/long, not labeling cities/countries, not the US states. I haven’t used this tool for quite a while now, but the last time I used it the labeling functions were working correctly. Any ideas for me to try?

    I know you’re busy and may not be keeping the code up to date; thanks in advance for any ideas. Thanks also for providing this tool for us to use.

    Chuck, K9PLX

  16. Thanks for doing the hard work to make this tool available, Tom.
    I’ve found it hugely useful.

    Vy 73,

    Steve – W0AZ

  17. Hello, an excellent piece of work. Q: if I do a polar projection (origin 90,90) with radius (10000), the longitude lines end up with the prime meridian labelled “270” and Central America at the top. Is there a way to “rotate the coordinates ” so that Longitude 0 can align with Greenwich? Thanks in advance!


  18. Hello

    Interresting result but i have 2 remarks :

    – the letters used to name the countries are too high and they overload the others countries
    – it’s a pity to don’t have the distances in kms indicated near the distance circles

    if you want i can send you a azimutal map with these 2 remarks used
    I can’t remember where i had generated it?
    Best regards

    1. The database of named places is small. I would suggest entering latitude/longitude or Maidenhead gridpoint. For example, put 55.947682,-3.2199424 for the location.

  19. Hi Tom,
    Saw your site today and used it to generate maps centered at my QTH (Chennai, India) and
    instantly liked it! Thanks for making this available. One small suggestion for improvement. Is it possible to overlay different antenna radiation patterns over this map..? It would be great to have such a map printed and kept in the shack!
    Thanks once again.
    73 De Clement.

  20. Hi,
    Thank you for great work, I appreciate it very much. I have only two question: why do you use Soviet Union, one Korea and other outdated borders on map? When do you plan update this?

Leave a Reply

Your email address will not be published. Required fields are marked *