Technical Information about the Bearing to Yerushalayim Map

Vintage Map with CompassI have been asked a number of questions recently about the directional accuracy of the Bearing to Yerushalayim and Zmanim Map calculations. The rhumb line calculations are very straight forward and I will not spend much time on it in this article. As a side note, for those interested in the subject, I would like to mention that Rabbi Gavriel Goetz recently published a very comprehensive pamphlet Gevuras Moishe on the subject and it is well worth reading.
My original calculations and implementation of the great circle route (geodesic line) used simple spherical trigonometry to calculate the initial bearing (and distance) based on a sphere using an authalic mean radius of 6371 km. These calculations were very similar to the method used by Rabbi Yehuda Herskowitz’s article in Yeshurun volume III page 586. This model of the earth is more than accurate enough for these calculations (you would need a very accurate “nose alignment” and the total lack of shuckling to even get within a degree of being correct). Google Maps API, Yahoo Maps and Microsoft’s Live Maps for simplicity sake, all use very similar calculations as mentioned in the cfis blog (archived) quoting Morten Nielsen

Google Maps / Virtual Earth / Yahoo Maps(?) all use a spherical datum based on WGS84. That is, it has the same center, orientation and scale as WGS84, but has no flattening. The radius of the sphere is the same as the semi-major axis of WGS84 (6378137 meters).

Using a sphere, all the above mentioned mapping APIs use spherical law of cosines formula for the calculations, that yield an identical result to the more complex Haversine formula.

Curious how accurate these calculations really are, being based on a perfect sphere and not the oblate ellipsoid/spheroid that the earth actually is, I started looking into the subject a little more. The most accurate current geoid model of the earth is the WGS84 model. The geodesist/mathematician Thaddeus Vincenty published the Vincenty formulae for this type of calculation that is said to be accurate to about one-half millimeter, more than adequate for our calculation. Chris Veness implemented this formula in JavaScript and released it under the LGPL, making it very simple to use. I slightly modified his work to allow easier interaction with the Google Maps API. The implementation that I used when I finally published the map on December 30, 2007 uses the Vincenty formula with the WGS84 geoid model (the Vincenty formula can easily be used with different goeiod models). The table below shows a comparison of the results for the initial bearing and distances of the different calculations based an a Lakewood, NJ (latitude: 40.095965°, longitude: -74.22213°) to Har Habayis (latitude: 31.77805°, longitude: 35.235149°) example.

Calculation MethodInitial BearingDistance
6,371 km (authalic mean radius) sphere using spherical trigonometry53.86555°9224.67442 km
Google Maps API 6,378.137km (WGS84 equatorial mean radius) sphere using spherical trigonometryN/A9235.00819 km
Vincenty formula using a WGS84 geoid53.81786°9244.61686 km
rhumb line95.37152°9891.16074 km

Zmanim Via Instant Messaging Bot

As hinted at in my previous post , there is a new project underway that uses the Zmanim API in a way that I had never really imagined. Using the Smack API, Michael Kopinsky created the ZmanimBot that allows getting zmanim by instant messaging the ZmanimBot, an internet bot. It currently supports the Google Talk IM system, but support for other systems might follow. Please be aware that the system is under development and is not always up. Additional information can be found on the ZmanimBot page.

Update (April 13, 2008): The ZmanimBot is now available via AIM

Updated Zmanim Jar Released – Please Download the Latest

Zmanim API ReleaseIn December when developing the Zmanim/Bearing to Yerushalayim map (blog post), I noticed a problem with the code used to generate zmanim. The API returns a Java Date object. Usually only the time is of interest, and the date is ignored, but in some cases (when a timezone offset is specified without using the Olson DB name (such as America/New_York) or if the GMT timezone is used for other locations, and the local standard time is calculated as an offset of GMT), the date of the sunset returned was earlier than the sunrise date. This caused zmanim such as Sof Zman Shema for some locations to be incorrect, since the math used was comparing surnise to a sunset on the incorrect date, causing some very odd behavior. Updated files that correct this issue were uploaded to the site on Dec 26th. I was notified today by a developer using the jar, that not all the download links were pointing to the updated versions, and this caused issues for his program (a post about his project will be posted in the near future). All the links have now been updated. Since the old code can sometimes generate incorrect zmanim, it is highly suggested that you replace your current jar with the latest version of zmanim.jar (or zmanim.zip).

Along with the fix mentioned above, a number of other small fixes were done. These include among other minor issues, fixed, better and simplified XML output from the toString method, better error handling for expected error conditions, that had previously caused errors in the generations of zmanim for areas in the arctic circle such as Thule, Greenland. In case you are curious, someone did actually try this, and the error logs lead me to find the issue. The IP address used for the request mapped back to the Thule Air Base.

Bearing to Yerushalayim and Zmanim Map



Did you ever find yourself unsure of the correct bearing (direction) to Yerushalayim (Jerusalem)?   The new Zmanim/Bearing to Yerushalayim map will help you find it very easily.  The map draws two lines from your location to Yerushalayim. The blue line uses the commonly used (Levush and others) rhumb line (a straight line on a Mercator projection map), while the green line shows the great circle route (Emunas Chachamim and others) on a map.   While it appears that the circle line is not a straight line, on a globe, the shortest (and straightest) line between two points follows the great circle route.   Future posts will detail the technical aspects of the work involved.   For additional information of the correct bearing for tefila, see Rabbi Yehuda Herskowitz's article in Yeshurun volume III page 586 and Rabbi Gavriel Goetz comprehensive pamphlet Gevuras Moishe on the subject.

How to Use

Find your exact location on the map by dragging the marker to your exact location or by clicking anywhere on the map. You can also click on the search button and enter your location (such as "Lakewood, NJ" (the default), "Vilnius, Lithuania") or just enter a zip code (Canadian or British postal codes work as well) to zoom in on your location.   Changing to satellite view and zooming in farther will make the job easier (assuming that you can identify your roof).   Once the red marker is centered on your location, click the red marker to show your exact latitude, longitude and bearing to Yerushalayim in an info window.   There are two additional tabs that show today's zmanim.   You can click on the "Link" button to refresh the page with the URL that contains coordinates to the currently displayed map with it's zoom level so that it can be bookmarked or emailed.
I would like to thank Rabbi Yehuda Herskowitz for his excellent article and additional information that he provided.

Known Issues

Google Maps API Bugs (All Fixed by Google)

  1. Zmanim data sometimes fails to show in Firefox. This seems to be a bug the the Google Maps API when dealing with synchronous AJAX calls.
  2. Locations close to 180° from Yerushalayim (Alaska is a good test case) sometimes shows an incorrect rhumb line bearing (though the circle route shows correctly). The information in the info widow is correct. This is a known issue with the Google Maps API
  3. Related to the above issue, sometimes the lines are drawn a “world away” and horizontal scrolling of the map is required to see the lines. Again this is a known Google Maps issue

To Do (related to Zmanim)

  1. Support Daylight savings time (supported by the timezone webservice used, but not yet implemented in the map)
  2. Link to a yearly calendar
  3. Elevation lookup (already available in the yearly calendar)
  4. Allow changing of the date

Zmanim Clock Applet Alpha Release

Note: Java Applets are obsolete, and the applet is no longer available
A while ago, Dr. Irv Bromberg mentioned to me, that my Zmanim API was in use in the Astronomical Clock Applet created by Ali Adams. The applet was a modification to Antony Pranata’s clock applet that displayed Islamic prayer times. Apparently the Zmanim API was so flexible that without any modification it was able to be used for generating “zmanim” well beyond anything I had envisioned. At Dr. Bromberg’s suggestion I modified the clock applet to display zmanim. Using the same Google Map API used in the Calendar Generator, I created the Zmanim Clock page (no longer available). The clock on the Clock page is very configurable, and allows selection of the location, zmanim etc. I contacted Antony Pranata, the original author of the clock who allowed my to release it under the GPL. An easy to use downloadable version will be made available in the near future. For those who think that the clock is upside down, there are more than enough configuration options to tweak the clock to your heart’s content.