Just a heads up to anybody thinking of using OpenWeatherMap to get their weather data for this project: to use the JavaScript geolocation API you have to be running over a HTTPS connection, if you’re running over a HTTPS connection then all your external API requests must also go over a HTTPS connection. The problem is that OpenWeatherMap only allow HTTPS requests if you pay them money.
I built my project using some test data that I grabbed from them (to prevent excessive API calls, which they limit to a certain number per hour) and so I only found out that my project wouldn’t actually work after I’d already built it around OpenWeatherMap.
Hopefully somebody reads this before making the same mistake.