Aurora Tracker
Aurora Tracker
Track and see Northern Lights
Challenges and Solutions
Lack of available tileset database
Challenge: The main challenge in creating an app for tracking the Northern Lights is the lack of an accurate tileset source. The main source of available data comes from the National Oceanic and Atmospheric Administration (NOAA) website in the form of a JSON file. The challenge was to accurately translate and draw this data to be layered on maps.
Solution: By overriding the url(forTilePath:) method for the MKTileOverlay class, I was able to generate a tile to represent the view each time the renderer requests a tile from the server. Instead of loading the tile from an external source, the application is able to convert the requested tiles into coordinates, parse them, generate a picture with a gradient, save it locally on the device, and return it to the renderer.
Visual Map Representation
Challenge: I believe that for such a beautiful natural event like the Northern Lights, there should be an equally pleasant visual representation. That's why I decided to make tilesets with gradient representation. My goal was to make the best out of the data I had to create the best-looking map representation possible.
Solution: By calculating the difference between each spot with the Northern Lights, I was able to create a function to fill in spots with a gradient between each spot, creating a smoother visual look. I believe that I achieved a pleasant-looking overlay.
GDS vs. Web Mercator
Challenge: The main difference between the Geographic Coordinate System (GCS) and the Web Mercator Projection is distortion and map engine options. MapKit uses the Web Mercator Projection, which doesn't show any latitude coordinate information above 85.011 and below -85.011. This means that some of the data for the Northern Lights will not be available for visual representation. The Web Mercator Projection also distorts coordinates, which can affect the accuracy of visuals.
Solution: After careful consideration of the pros and cons of each option, the decision was made to follow with the Web Mercator Projection. The decision was based on the main advantages of using this method, including the convenience of using Apple Maps, which are familiar to users. The integrated map engine could also be easier to use for future updates, such as navigation to viewpoints or pinpointing locations. Experience with the integrated map will also help me to understand native solutions for the iOS platform.
For support contact me at sound@arseniychuranov.com