Friday, March 28, 2014

Better Terrain Identification

While scouting some backcountry ski terrain l last weekend, I had trouble identifying a slope.  I'd taken a photo and could match that to what I saw on the view from here feature, but the slope itself was unlabeled.  I had trouble identifying the nearby peaks - while they were named, entering "abc peak, ca" in the search bar didn't match anything, so I had to start with the general location and pore over the map until I found them.

Once the nearby peaks were identified, it was still hard to figure out exactly which slope I was interested in.  The angle I was looking from made it hard to match ridges and subpeaks to features on the map without a lot of careful back and forth.  And so in my frustration, a new feature was born - sort of a reverse view from here.

Lets do a hypothetical example.  From the top of Half Dome, you see a dome that looks interesting, but you can't figure out what it is.  Fire up CalTopo, enter "half dome" in the search bar, and then right click on the summit and choose "View From Here":


Here's the large-scale simulated view looking up Tenaya Canyon from the top of Half Dome:


And here's the view zoomed in on the mystery dome.  Unfortunately it doesn't have an entry in my USGS-supplied list of summits, so unlike Mendlicott Dome above and to the right, it doesn't get a label:


Previously, identifying this dome would have taken some map legwork.  Now, you can right-click on it and choose the only option available, "Map This Spot":


A new CalTopo map browser will open centered on the spot you clicked:


In this case the mystery feature is Pywiack Dome (note the center graticule on its southern face).

Depending on how long it takes for my server to figure out what point you're looking at, the CalTopo map browser may open in a new window rather than a new tab.  Not ideal, but it's a browser feature I only have so much control over.  When I have more time, I'll see what I can do about that.  Enjoy!

Thursday, March 20, 2014

The Daily Grind

When you start a new project, you can devote 100% of your time to new, exciting stuff.  As the project grows and matures, maintenance and general upkeep take over.  Eventually the cool features, the ones you wake up excited to go work on and change the world with, get pushed to the side.  Sneaking time to work on them begins to feel like a guilty pleasure.

While the day-to-day stuff isn't glamorous, it's still critical to making a useful site.  To help illustrate that work on CalTopo is still alive and kicking in the absence of big-ticket changes, this post is devoted to some of the smaller items from the last couple months.  They are:

Added Degree Decimal Minute support to the PDF generator.

Custom PDF page scales.  You could always choose "not fixed", but now you can snap boxes to a custom scale:


Garmin's USB Mass Storage enabled GPSs behave a little differently, and were sometimes problematic when importing and exporting data.  I had to rewrite some of the GPS interface code to get them working properly.

Provided direct KMZ downloads to GPSs that support Garmin Custom Maps, so a user doesn't have to figure out where to manually copy the file over to.  This is on the same page that lets you export KMLs and KMZs:


My GPX parser isn't perfect, and the KML parser far from it, as KML is a very large and complex format.  I'm now saving all files the parser can't handle.  Most of these are gibberish like shapefiles and tabular data that were uploaded by mistake, but looking through them helps me spot errors without being reliant on users complaining when something doesn't work right.

CalTopo now reports sizes for smaller polygons in acres, in addition to square miles and kilometers.

The find box at the top of the page was interpreting coordinates as WGS84 even when the datum was set to NAD27.

Sorted objects in the left bar by name, rather than creation order:

Improved default "View from Here" quality, and eliminated the "fast" option.  So far this feature hasn't been unduly bogging down my server, so there's no need to keep it restrained.

The coordinate options in the left bar were originally UTM/USNG on top and several Lat/Lng formats on the bottom.  I changed this so that both dropdowns have all five options.  CalTopo will switch over to Lat/Lng on top and UTM on bottom by default, but these choices are saved to your browser so you shouldn't need to keep resetting them:

The big reason for this change is that I can now treat the first checkbox as the user's preferred coordinate system.  I've wanted to allow direct editing of marker coordinates for some time, but the lack of a single, user-specified coordinate system held me back.  It's about time for this change; previously you had to try dragging a marker into the correct spot while watching the coordinates in the screen's top right:

Cookies had been expiring when you closed your browser, so the map center/layers/datum/etc reset every time you came back with a new browser session.  I never noticed this as I rarely reboot my computer and am often clearing cookies for debugging purposes, but those settings will now last for 3 months.

I had been smoothing GPS tracks a bit, in order to prevent bogging down the UI when someone imports, say, a big chunk of the PCT.  By popular demand, this is now optional, although still recommended unless you want the extra precision:

A new stage was also added to the import dialog to give you the option of choosing particular markers and shapes rather than pulling in everything and then deleting the stuff you don't want:


There were some coordinate formats I wasn't parsing right, like last 5 UTM and using 120.1 W instead of -120.1 for longitude.  Fixed what I could, if you run into something that doesn't work right, let me know.

Added bearing lines, so that you can plot a line at a compass bearing from a given location.  Useful for SAR for coordinating ELT signals and voice calls, not sure what how much use it will have for general mapping.  Note that when drawing a new line, range/bearing from the last vertex is displayed at the top right of the screen, which may also be helpful.

You can now print a list of marker coordinates along with a map.  This used to exist but partially broke at some point.  It's accessible at the bottom of the PDF generator:

GPX exports - and consequently, GPS exports - added a bunch of extra data into the description field so that if you re-imported the file, it would preserve colors, marker symbols, comments and so on.  Unfortunately all this data would sometimes show up on GPSs, which is more than a little annoying.  Exports are now plain vanilla GPX.  If you want to back up a map or copy features from one map to another, the export dialog now has an "Include Attributes" checkbox.

This is a pretty obscure feature, but if you're setting up a website and want to make use of embedded CalTopo maps, you can import a KML file by listing it as part of the URL hash, e.g. ending with &kml=http://location/of/kml/file.

Some more options for getting detailed information on a point:

Sun Exposure was covered in the "Where's the Sun?" post.  The NOAA Forecast option brings up a point forecast page on weather.gov.  Position & Elevation brings up a dialog with elevation/slope/aspect as well as the coordinates in a variety of formats:

The "Layers" section on the leftbar simply provides a preset combination for the layer menu at the top right.  This proved to be too subtle as many people thought these were the only options and missed the layer menu entirely.  In order to make this visually obvious, I'm now briefly flashing the layer menu whenever someone clicks on a preset.

Similarly, a lot of people missed the slope and land management keys at the bottom right of the map screen.  These are now shown directly under the checkbox, although to avoid UI clutter, they only appear when a layer is active.  The keys are currently cropped instead of flowing onto a second line, but they still convey the general idea: