Menu

Lat × Long

Stefan Keller, Spatialists:

There has been an increase in attention surrounding pedestrian routing, as two prominent OpenStreetMap-based1 routing engines, OSRM and Valhalla, have started to calculate routes not just along paths, but also across walkable surfaces such as squares, pedestrian zones and station forecourts. This brings routing much closer to actual human movement. As far as I know, Google Maps does not yet offer this feature, often offering detours around the perimeter of large squares instead.

OSRM is used by the main OSM homepage, the OSM homepage Switzerland and Mapbox, among others.2 Valhalla is used in Apple services and various OSM-centric geospatial projects.

The two engines take different approaches to offer the new functionality: Valhalla generates an internal routing graph for pedestrian areas, enabling large squares or pedestrian zones to be crossed quasi-naturally, even when no individual paths are mapped. OSRM introduces a model called “Open Area Routing” (also referred to as “Plaza Routing”), which explicitly accounts for surfaces. Origins and destinations can lie inside an area and its geometry is factored directly into route and distance calculations.

I did not know about these changes; very cool to see.

Ryan Christoffel, 9to5Mac:

Apple confirmed to 9to5Mac that the ads rollout in Maps began in the last few days. And it will continue ramping in the weeks ahead to all users.

There are two places you’ll find ads in the Maps app:

  1. Before searching: Suggested Places in the search screen will feature an ad.
  2. After searching: Ads will appear in search results when relevant.

Ads appear just like every other business listing, except they have a small blue badge that says ‘Ad.’ You can see examples of ads in the images above.

John Gruber of Daring Fireball shares his first impressions:

Before searching, I saw an ad for an HVAC contractor 12 miles away in “Suggested Places”. Knock on wood but I currently have no HVAC problems, and even if I did, I’d just call someone and have them come here. Then I waited a few minutes and looked again. This time I saw an ad for Tommy’s Express Car Wash (“Get your first month free”), 23 miles away in the middle of a suburban shopping mall. Apple Maps estimates it would take me 1 hour 8 minutes to drive there right now. I’ll get right on that.

The HVAC contractor (Heating, Ventilation, and Air Conditioning, for people like me who have to look up the acronym) is exactly the kind of business I don’t need on a map. Unless, of course, there is a showroom where I can check out the latest heat-pump models. One of my favourite pastimes.

The car wash belongs on a map. Most people will just go to one they already know, but a small number might still consult a map to find one. What I don’t understand is the economics of advertising a car wash on Apple Maps. Does this ad really convince enough people to head to that specific car wash to make the ad’s cost worthwhile? And does Apple make enough money from selling these ads to make it worth cluttering up search results?

Bert Temme put the recently released Portolan CLI through its paces and published a new data catalogue, starting with a dataset hosted an ArcGIS.

Extracting two datasets from ArcGIS, creating catalogue and PMTiles, publishing the catalogue took a total of eleven commands. That includes installing the CLI and checking its version. Publishing data in an open format doesn’t get much simpler than this.

From the OSGeo press release:

Ian has been a member of our community from the very beginning, as an original voting member who gathered in Chicago in February 2006 to establish OSGeo. He also is a co-founder of GeoTools, the Java library that is the foundation for the Java ecosystem in OSGeo, and a Project Steering Committee (PSC) member of GeoServer. But more importantly, for decades he has been helping new users, through talks, workshops, answering questions on StackExchange, and always being a kind and jovial person. We are lucky to have him in this community.

Ian is a true veteran in the open-source geospatial world. This award is well deserved.

Eromo Egbejule, The Guardian:

The United Nations has voted to adopt a resolution for the world to formally phase out the traditional Mercator map of the globe in favour of one that more accurately displays Africa’s size.

In a session at its headquarters in New York, the UN general assembly officially retired the 16th-century Mercator projection in favour of one based on the more accurate 2018 Equal Earth design.

At the session, 164 countries voted in favour of the resolution. Only the US voted no, with its representative saying the resolution was “superfluous”. There were six abstentions.

Queue the executive order renaming Earth to “Planet America”.

Despite recent technological advances, publishing geospatial data is still hard. It requires various tools and extensive infrastructure to prepare and host large datasets online. Questions remain: what formats should the published data use, how should the data catalogue be structured, and where should the data be hosted?

The Portolan logo

Portolan introduces strong, opinionated conventions to simplify geospatial data publishing. It builds on STAC and adds conventions to make the data discoverable for API clients, AI agents, and humans alike. It introduces tooling to create and publish catalogues alongside the data, agent skills that guide AI agents on how to use the catalogues and access cloud-native data, and a central catalogue registry.


The Portolan Specification

A Portolan catalogue is a valid STAC catalogue. It is organised into (sub-)catalogues and collections. Each catalogue or collection includes a STAC-compliant JSON document describing the data.

But Portolan reins in some of STAC’s flexibility. Catalogues can only nest other catalogues or collections. Collections themselves must not contain other catalogues or collections; only items are allowed. Titles and thumbnails are required, making it easier for humans to understand what data a catalogue offers. Each scene—if you work with satellite images—must be represented with its own item.

Where STAC is an API for client applications, Portolan adds access points for humans and agents alike. Required README.md and AGENTS.md files live alongside STAC-compliant metadata and describe the data in a human- and agent-readable way.

With Portolan, the data lives alongside its metadata in the same directory as the collection or item. The data must be provided in a cloud-native format: “GeoParquet and PMTiles for vector, COG for raster, COPC for point clouds, and Parquet for non-spatial data.” (Although point-cloud support is currently not implemented.) By leaning into cloud-native formats, running a Portolan catalogue requires little infrastructure besides a public S3-compatible object storage. Browsers access data slices via HTTP range requests without requiring intermediary APIs.

Each collection must include a way to visualise its data, either by rendering the data from source or by adding a pre-rendered visualisation, such as a PMTiles archive.


Publishing a Portolan catalogue

Besides the catalogue and data specification, the Portolan ecosystem includes a suite of tools for creating, publishing, and validating catalogues.

Command-line interface. The portolan-cli offers tools supporting the complete data-publication process: from preparing data in the right formats to generating the catalogue and publishing it to object storage. Instead of manually invoking several tools like GDAL or Tippecanoe and editing JSON documents by hand, the Portolan CLI becomes the one-stop tool for geospatial data publication.

It converts vector and raster data from a variety of formats to GeoParquet and Cloud Optimised GeoTIFF; it can even extract data from proprietary sources like CARTO and ArcGIS, or from more old-fashioned but open ones, like WFS. It generates Portolan-compliant metadata from YAML files and produces data visualisations, including thumbnails, PMTiles, and MapLibre styles. Once the catalogue is ready, you push the catalogue files to an S3-compatible storage system using the CLI.

Agent skills. If you prefer not to do much work and have AI handle your day-to-day data publishing tasks, the portolan-skills have you covered. They’re a set of agent skills that help agents execute Portolan-related tasks, such as creating and updating catalogues, generating thumbnails, or reading catalogue data.

Catalogue validation. A central aspect of Portolan is compliance with the convention. The spec states, “Declaring the Portolan [STAC] extension is a claim of conformance, not proof of it. An object conforms to this specification only by passing the Portolan validator.” Rashid is Portolan’s validation tool. Point it to a catalogue, and it checks compliance with Portolan conventions and the STAC spec, and verifies checksums, data formats, and extents.

Catalogue registry. The Portolan registry is the central entry point for finding and exploring Portolan catalogues. It currently includes twenty catalogues covering datasets across the globe. Once you have published your Portolan catalogue, you can add it to the registry by submitting the URL through the web form or opening a pull request to the registry’s repository. Humans can now find your data via the Portolan browser, a STAC-browser fork with Portolan-specific features added.


Portolan is more than a data catalogue specification. It’s a full suite for publishing geospatial data online, and a straightforward, cost-effective way to make it discoverable for humans and machines alike.

When Google renamed “Lake Ontario” to “Lake America,” MapQuest decided not to. As a result, MapQuest app downloads have soared over the last couple of days.

Sarah Perez, TechCrunch:

The “OG of online mapping,” as the company calls itself, announced on Thursday that it would not change the name of Lake Ontario on its maps to Lake America, despite Trump’s executive order directing the U.S. Department of the Interior to update the lake’s name in the U.S. geographic naming service. As a result, MapQuest’s mobile app downloads soared, sending the iOS app to the No. 4 position on the U.S. App Store’s Top Charts for apps (not including games) as of Monday morning on the U.S. east coast.

MapQuest also reached the No. 8 position overall in the U.S. App Store across both apps and games, and it became the No. 1 Navigation app in the United States.

In Canada’s App Store, the app reached No. 2 overall as of Sunday evening.

The 30-year-old company remarked that it received “hundreds of thousands” of new downloads since its decision to keep the name Lake Ontario in place, and saw its app’s usage climb to 50 times above its normal levels.

Shame that to stay on top, you have to make a product people actually want to use.

geoparquet-io is a Python command-line tool for working with GeoParquet files. Among other things, it lets you read and write GeoParquet files to and from a variety of sources (GeoJSON, GeoPackage, Flatgeobuf, and the trusty Shapefile), inspect GeoParquet files, or extract data subsets.

The latest release brings several big additions:

  • Support for curved geometries. Curves aren’t supported in DuckDB, which drives geometry handling under the hood, so curves are converted to lines or polygons before being stored in GeoParquet.
  • Sort Tile Recursive (STR) sorting, an alternative to Hilbert Curve sorting, which performs better “in terms of spatial locality and remote query performance.”
  • Aggregations over A5 and H3 grids or administrative boundaries, providing summaries of selected columns.

Many other smaller fixes and improvements include WFS support, PMTiles output, and ArcGIS error reporting.

Open-source spatial-data editor Placemark has switched from Mapbox GL JS to MapLibre GL JS. All of Placemark’s dependencies are properly licensed as open source.

Tom MacWright, creator of Placemark:

This meant swapping out both the Mapbox frontend code as well as switching to a different tile service - we’re now using OpenFreeMap for tiles, OpenMapTiles-based styles, openrouteservice for the routing drawing mode, and MapTiler for the satellite layer. Forks of Placemark no longer require a Mapbox API token to work, but they do require a MapTiler token to support Satellite tiles, and an openrouteservice token to do route-drawing.

The big upside here is that this makes Placemark cleanly open source: all of its dependencies have proper open source licenses like MIT, ISC, Apache-2.0, BSD-3-Clause, or similar[2]. Mapbox GL’s license is not open source and requires the developer to have a Mapbox account and follow their Terms of Service. So: you can now fork Placemark and build cleanly-licensed open source applications on its codebase. I recommend it!

GPS is notoriously imprecise in some environments, like dense urban areas or beneath tree canopy. In a recent announcement, Google said it improved the quality of the GPS signal on its Pixel Watch 5 using 3D data from Google Maps and an AI-driven process.

Lindsey Lanquist, Google:

Thanks to Google Maps, they had three-dimensional models of buildings around the world. And the team paired that data with AI to cut down on errors caused by the GPS signal bouncing off buildings. “You need to know where all the buildings are,” Frank says. “But you also need really good AI to do it right.”

Unfortunately, the announcement is a pure marketing fluff piece with little substance. Lanquist doesn’t disclose any details about the method beyond using Google Maps data and something something AI in the process. The maps in the post show a more precise GPS track compared to the Pixel Watch 4. Despite claiming that the Pixel Watch 5 outperforms the Apple Watch Ultra 3 and Garmin Fenix 8 Pro, Google fails to provide statistical evidence.

Mehul Solanki, Sparkgeo:

Can You Run a Vector Tile Server on AWS Lambda Without PostGIS?

The quick answer is yes, and here is how we did it. Serving vector map tiles are typically associated with long-running servers like PostGIS, pg_tileserv, Martin, or a full GeoServer stack that can result in high monthly costs. We took a different approach to keep the Canadian Institute of Forestry (CIF) API lightweight and low cost: a serverless vector tile server running on AWS Lambda, backed by SQLite and SpatiaLite.

The post has a lot of details about the setup, but the gist is this: an SQLite database is just a file, so you can bundle it in a Docker image that serves as the base image for the Lambda function. The API and the data behind the API live in the same container.

When your data never changes, running a database server to make that data available is indeed costly. Usually, you’d pre-render the tiles and serve them from a low-cost object store. But it’s hard, if not impossible, to run filtered queries, aggregations, or exports to other data formats from pre-rendered vector tiles, so a self-contained SQLite database is the fit-for-purpose middle ground.

Popular GeoJSON editor geojson.io received a major update, including an overhaul of the application architecture, based on Placemark Play.

Andrew Sepic, Mapbox:

geojson.io’s core had aged in place for a while. Under the hood, it had already been through one generation of map tech — originally built on Leaflet-based Mapbox.js library, then refactored to Mapbox GL JS and Mapbox GL Draw in 2022 — but the application itself never changed alongside it. The UI was built entirely with D3, using its selection and data-join API as a general application-construction tool rather than for what it’s best known for: data visualization. D3 has no built-in component model or state management, so anything beyond simple DOM bindings meant hand-rolling patterns a modern framework gives you for free.

Rather than start from the ground up, we forked Placemark Play — an open-source geojson editor, also built by Tom MacWright, with an editing model designed from the start around multiselect and structured data editing — and adapted it into geojson.io’s new foundation.

This new version looks and feels good. The update adds a ton of new features, like multi select and bulk editing, editing history with undo/redo, style editing and custom base maps. Most of these new features go way beyond what I usually use geojson.io for: To create simple test data when I needed it, or to quickly preview a GeoJSON file. With these changes, geojson.io is shaping up to be a tool for serious spatial-data editing.

Published yesterday in The Journal of Open Source Software: “JupyterGIS: A Collaborative GIS Environment for JupyterLab”

JupyterGIS is a JupyterLab (Kluyver et al., 2018) extension that enables web-based Geographic Information System (GIS) workflows. It provides a familiar GIS interface inspired by traditional desktop GIS tools, real-time collaborative editing, and a Python API for programmatic control, making it a powerful tool for geospatial data analysis and visualization. JupyterGIS supports a wide range of geospatial data formats, including GeoTIFFs and Cloud-Optimized GeoTIFFs, Shapefile, GeoParquet, and PMTiles, and provides advanced features such as symbology editing, spatio-temporal animations, and a browser-based processing toolbox powered by WebAssembly (WASM) builds of GDAL (Rouault et al., 2026).

Why a paper for a piece of software, you might ask, especially when it’s only a couple of short paragraphs? The Journal of Open Source Software aims to make research software a credible academic output and to provide peer review of the software’s quality. It gives researchers a resource they can cite in academic publications, and peer review ensures that the software is functional and adheres to open-source principles. This is particularly important because it allows other researchers to reproduce results from the cited software.

You'll find older posts in the archives.