Monthly Archives: April 2016

JavaScript: UTM ↔ LatLng


I’m sure this has been done (more thoroughly) many times before, but I wanted to take a crack at the simplified UTM/LatLng conversion equations (as listed here). You can find my functions, latLngToUTM(lat,lng) and utmToLatLng(easting,northing,zone), here.


Old Prince George Floodplain Map


Just thought I’d share a cool looking old map overlay I found digging through the BC Map Services. I enjoy the very detailed, yet simple look. I’ve also superimposed the City of Prince George Flood Plain 1997 layer, which I think is the digitized version of the scanned BC map. Kinda scary to see how far up Patricia/Winnipeg/17th/Massey it would flood, but I guess the City’s got it figured out.

UrtheCast Satellites


I’m working my way through the UrtheCast API documentation, and got side-tracked into making a satellite tracker map. This map shows the ten most recent locations of four satellites (ISS, Deimos-1, Deimos-2, and Lansat-8) and their imagery swaths, I think. The reason I say I think is that the call for the imagery swaths (or the forecast) is set for the future, although the returned timestamps appear to be in the past.

I also think I figured out how to hide my UrtheCast api key and secret from prying eyes through a PHP proxy, but I could also be wrong about that! If you can see them, let me know. 🙂

WMS GetFeatureInfo Request


Continuing on with yesterday’s exploration into GeoMet and its myriad web mapping services (WMS), today I added GetFeatureInfo requests (map here).

If you’ve used WMS, you’re probably familiar with GetCapabilities (retrieves metadata) and GetMap (retrieves map tiles) requests. GetFeatureInfo is another type of request which retrieves attribute information at a given location, provided the server (e.g. GeoMet) has been configured to provide this information (look for “queryable=’1′ ” in the layer metadata).

One stumbling block I encountered (and likely handled poorly) was overcoming the issue of cross-origin resource sharing (CORS). No matter what I tried, I was blocked from retrieving the request response because, of course, my webpage resides on a different server than the WMS. I got around this by calling a PHP script that copies the text response from the request locally and reads that version. Honestly, I’m not sure why that works and reading the original request doesn’t, but it does and that’s good enough for me. If you have a simpler solution (I’m sure it’s out there), I’d love to learn about it!

GeoMet: Canadian Weather WMS


I’ve been looking into Canadian open data, and stumbled across GeoMet Geospatial Web Services, which is a HUGE collection of weather-based web map services and KMLs. You can check out my sample map here, which contains a very tiny sampling of the available WMSes.

2011 Canadian Census Profile, By Province


As so often is the case with these side-projects, I blindly followed my nose to produce this map, which maps the 2011 Canadian Population Census, Census Profile (data here). There are 472 attributes in all, dealing with population, age, sex, dwellings, families, marital status and language.

The province squares idea came from Bill Dollins’ US States as Squares project, although I could have just as easily used the province boundaries.

I’m still definitely learning Mapbox JS – feel free to leave tips in the comments!