Arctic Connect Technical Blog
PolarMap.js 1.2.0 Released
I am happy to announce the release of version 1.2.0 of PolarMap.js today!
Version 1.2.0 adds a feature and fixes a bug. The bug was that the projection extent for the polar projections was not correctly defined, causing markers to be mis-aligned from the underlying tiles by a small amount (under a metre). The fix correctly defined the extent as half the circumference of the WGS84 ellipsoid, a better choice than the estimated value that was present in previous versions of PolarMap.js.
The new feature is support for loading Arctic Web Map tiles over HTTPS. I have set up the Arctic Web Map tile cache server with an SSL certificate from Let’s Encrypt, giving you the option of loading tiles securely. The first advantage is that it allows an already secure web page to load the tiles securely instead of over plain HTTP, which causes browsers to issue a security warning. SSL also means the tiles you are accessing are private between you and Arctic Web Map, no eavesdropping of which tiles you are using.
HTTPS will be enabled automatically for tiles if the enclosing webpage is HTTPS. Otherwise, tiles will be loaded over HTTP without encryption. If you are loading tiles manually then you should be aware SSL is enabled for tiles.arcticconnect.org and supports the alternate domains of a.tiles.arcticconnect.org, b.tiles.arcticconnect.org, and c.tiles.arcticconnect.org.
For more info on the SSL certificate, check our new certificate on SSL Labs.
Arctic Web Map Tile Cache
A recent hardware issue on the Arctic Web Map Tile Server caused a short outage earlier this week. As February 15 was a public holiday, the outage lasted 23 hours and was corrected on February 16.
To maintain some availability of Arctic Web Map tiles during any future Tile Server issues, I have set up a tile caching server in front of the Arctic Web Map Tile Server. This cache server is hosted with Cybera in Calgary, on a separate infrastructure system than Arctic Web Map which is hosted at the nearby University of Calgary.
In this new setup, when requests are made for a tile they are passed through this cache server to the main tile server and the result is cached in a disk store on the cache server. If a subsequent request is made for the same tile and the tile has not past its expiry date, then the cache server will return its local copy instead of asking for a copy from the tile server.
If the tile server is unavailable, then the cache server will return a local tile to you if there is one in the cache. Otherwise, a 504 error is returned. Currently the cache server will wait up to 3 seconds to open a connection to the tile server. If the tile server does not respond at all, then it will be considered unavailable for that request. This does not affect cases where the tile server is online and a new tile needs to be rendered, but takes more than 3 seconds to generate: in that case, the cache server will still open a connection within the 3 second limit.
You do not need to do anything to use this new service as it was activated automatically when I switched the DNS to point *.tiles.arcticconnect.org to the cache server today (February 17).
Web Map Tile Updates
The tiles for Arctic Web Map have been updated!
The first issue fixed is related to rendering glitches visible in the lower-right quadrant of each map projection. It affected both the OpenStreetMap data layer as well as the bathymetry and geographic line layers. The OSM glitches were caused by some of the layers not having the correct projection specified; they are stored as EPSG:3573 in the database but Mapnik was reading them as if they were EPSG:4326 layers. This has been fixed. The problems with the bathymetry and geographic line layers were fixed by reprojecting them to EPSG:3573 and not having Mapnik do the reprojection on the fly.
The next issue caused “slivers” of blue water to appear in various parts of the globe. This was caused by the land shapefiles not being segmentized before being transformed from EPSG:4326 to EPSG:3573, causing gaps where there are long boundaries. This was fixed by segmentizing the land shapefiles before they are reprojected into EPSG:3573.
The last issue was the ground layer not being rendered at high zoom levels (13+). This was fixed by specifying the correct projection for those layers in the project file.
The styles were also updated to better select the layers to load at different zoom levels. This should give a minor boost to the tile rendering performance.
I use a script to automatically download, extract, and process shapefiles for Arctic Web Map data layers. This has been updated to allow more fine-grained control over how each layer is processed. It will also support parallel processing soon.
I added partial indexes to our OSM database mirror. This should help the tile render speed on some queries.
The tiles are currently being regenerated for zoom levels 0 through 10. This will take a few weeks to complete. Zoom levels above 10 are rendered on the fly and are considerably faster.
Technical Blog Started
The documentation on the project, platform, or services has been moved to a separate page.