I created this web app originally for designing Pookkalams, which are intricate floral designs made during the Onam festival in Kerala, India. Pookkalams are made using various types of flowers and are laid out in beautiful, symmetrical patterns on the ground.
I think you used standard bus route search with JFK and Heathrow. OpenStreetMap suggests Lisbon since the departure and destination are on different continents, providing a route in close proximity to the destination with access to the sea.
If you prefer the flight path, you can visit dev.sitinshade.com/flight [beta].
Backend: Node.js
Calculations are performed based on the azimuth of the sun and the bus, taking into account the movement of the bus and change in time.
The hard part was obtaining information such as solar azimuth, altitude, declination, hour angle, etc without using external APIs. Spent around 5 days implementing backend.
Way too late now, but to help others this fancy Excel sheet provided by NOAA is awesome! It implements all of these equations in Excel and is pretty easily portable to your programming language of choice. https://gml.noaa.gov/grad/solcalc/calcdetails.html
P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are.
> P.S. Using this has made it clear to me how bad most sunrise/sunset calculators actually are.
That may just be a function of how you define "sunrise" and "sunset". It is never as simple as "when the sun hits the horizon", but something about some number of arc minutes from something something.
Dependent on the refractive index, which depends on air density and temperature and humidity too; and we have to integrate over the region between the horizon and the upper atmosphere (diagonally, of course)…
To be clear I was complaining that basically everyone calculates “sunrise” and “sunset” differently. If you check half a dozen different “sunset” calculators you will get a surprisingly wide variation in the times they provide. At least where I live the error seems to average 5-10 minutes.
I'm not sure what you mean by external APIs but is there a reason you're not using SunCalc[1] on the client to process the route after it's returned from the routing engine?
Would be great to offer this as an option, even if we would have to fill in our own API key. The train tracks in my country differ quite somewhat from the roads when I try it out. Also. busses take defined routes and not the shortest path. Google Maps provides all these routes.