Courtesy Mapzen |
Let's do a little background and then get to the details.
Vector What Now?
We've been slinging around vectors for years in WhirlyGlobe-Maply so vector tiles weren't a huge diversion. We even had our own format for a while.
These days vector tiles means Mapbox Vector Tile format, but it implies two other things:
- A curated version of OpenStreetMap suitable for web and mobile map display
- One or more style sheets to describe the visual representation
You might call this a Vector Tile Service if you were so inclined. Developers want to shove a map underneath the thing their app is actually doing.
It's a trivial, seamless process with an image tile service. We're going to make it just as easy for a vector tile service.
Here is our roadmap to get there.
Mapzen Vector Tile Service
We can parse and display Mapzen's vector tiles just fine in either GeoJSON or Mapbox Vector Tile format. But we use really simple style sheets.
Must be night or something |
That looks kind of meh. For a real map we need better. There are a number of ways to do style sheets, but I'd like something that requires minimal upkeep.
Mapzen has a Javascript/C++/Java based renderer called Tangram. It's got it's own style sheet format. That format is.... very specific to Tangram.
I've been on the fence about their style format. Some discussion was in order.
Data Formats & Common Usage
Data formats have crazy parts. Go look at PDF (better yet, don't). You have to decide what's common usage and what parts you ignore, at least for a while.
The Mapzen folks were kind enough to host a meeting where we could explore this. It looks like the common usage among their various style sheets is blunting the weirdness. They've got professional cartographers using it, in addition to engineers, which is a big plus.
In short, when we see some deep_Tangram_weirdness we can substitute minor_WG-Maply_weirdness and it'll look pretty similar. Good enough.
There's Open and Then There's Open
The most attractive thing about the Mapzen Vector Tile Service is the terms of service. You can use the data in any API and in a variety of ways. As long as you're not completely rude.
Best of all, you can mix online and offline databases without violating the license. That makes it perfect to slip into a WhirlyGlobe-Maply app and in our test apps.
That's not a knock on other services. I get that the API and data are often tightly linked by a license. That's how you make money. And speaking of money...
Best of all, you can mix online and offline databases without violating the license. That makes it perfect to slip into a WhirlyGlobe-Maply app and in our test apps.
That's not a knock on other services. I get that the API and data are often tightly linked by a license. That's how you make money. And speaking of money...
Roadmap and Funding
The vector tile part works just fine in WhirlyGlobe-Maply now. We still need to implement the Tangram style format. We're just wrapping up Styled Layer Descriptor support so it shouldn't be all that difficult.
It does require money.
It does require money.
That's the roadmap. If you're interested in any part of it, speak up. I get asked about this a lot, so it'll get paid for eventually.
No comments:
Post a Comment