Geotagging at SFO Museum: Client-side EXIF, Web Components, Tilepacks, AppRunner and Live Demos

Title image for Geotagging at SFO Museum: Client-side EXIF, Web Components, Tilepacks, AppRunner and Live Demos

While this particular instantiation of the geotagging application is scoped to the physical boundaries of SFO the code itself is not specific to SFO Museum. It can be used, in combination with custom databases of map tiles and geographic data, with any image on your computer. This code will continue to be the common infrastructure that we build a SFO Museum application, specific to our needs, on top of.

This is a blog post by aaron cope. It was published on June 16, 2021 and tagged golang, geotagging, aws, reverse-geocoding, tilezen, maps and aws.

Geotagging at SFO Museum: Protomaps, search and reverse-geocoding

Title image for Geotagging at SFO Museum: Protomaps, search and reverse-geocoding

The bad news is that, when you look closely, there really are that many moving pieces when it comes to something like geotagging photos. The good news is that nearly all of those moving pieces, from the underlying data to the tools to operate on those data, are within the reach of cultural heritage as low-cost and open-source alternatives to the commercial offerings. We may still need to stitch those pieces together to meet the needs of a specific institution but at least they are within reach now.

This is a blog post by aaron cope. It was published on May 03, 2021 and tagged golang, geotagging, whosonfirst, geocoding, reverse-geocoding, placeholder and maps.

Updating (and reverse-geocoding) GPS EXIF metadata

Title image for Updating (and reverse-geocoding) GPS EXIF metadata

When I save an image of this view of the runways at SFO, from 2017, the newly created image’s EXIF data contains not only the date and the permanent URL for the map but also the latitude and longitude coordinates for the map’s center point.

This is a blog post by aaron cope. It was published on April 26, 2021 and tagged golang, exif, javascript, wasm, flickr and reverse-geocoding.

Updating EXIF metadata in JavaScript (and WebAssembly)

Title image for Updating EXIF metadata in JavaScript (and WebAssembly)

One question that’s been raised about the camera/save button in zoomable images is whether or not the new image contains, or preserves, existing EXIF metadata information stored in the original file. The answer yesterday was: No. The answer today is: Not yet, but only because we haven’t enabled it and we will do that soon.

This is a blog post by aaron cope. It was published on April 14, 2021 and tagged golang, exif, javascript, wasm and zoomable.

Reverse-Geocoding in Time at SFO Museum

Title image for Reverse-Geocoding in Time at SFO Museum

Have you ever wanted to be able to reverse-geocode a point not just in space but also in time? Have you ever wanted to do that date-filtering with fuzzy or imprecise dates, encoded using the Extended DateTime Format (EDTF) ? Have you ever wanted to do both of these things with an arbitrary subset of location records? Have you ever wanted to be able expose these things as a web application and an API that doesn’t need to talk to a remote database? Have you ever wanted to be able to deploy those applications both locally and as serverless applications running on a cloud-provider’s infrastructure? Now you can.

This is a blog post by aaron cope. It was published on March 26, 2021 and tagged golang, tools, edtf, spatial and reverse-geocoding.

Tools for Complex and Ambiguous Dates at SFO Museum

Title image for Tools for Complex and Ambiguous Dates at SFO Museum

The EDTF specification does all the work of defining the rules and semantics for encoding complex and ambiguous dates in to well-defined and structured strings and the go-edtf packages do the work of decomposing those strings in to values and flags that can be manipulated by computers.

This is a blog post by aaron cope. It was published on January 14, 2021 and tagged golang, tools and edtf.

Syndication feeds for this weblog are available in the Atom 1.0 and RSS 2.0 formats.