I'm heading to Europe in mid-June. Since I'm flying to another continent, I'm going to pack in as many meetings as I can stand. And then a few more.
If you'd like to meet and discuss mobile geospatial data visualization and maps, drop me a line and we'll set something up.
Here's the schedule.
London (UK): June 8 - June 9
Jet lag. Client meetings. Collaborator meetings.
I know there's an active geo community in London, but I'm not really plugged in to it. If you are, let me know who I should talk to.
Geneva (Switzerland): June 10 - June 11
I'm giving a talk at the LocationTech event in Geneva. It'll be fairly high level, I think, with lots of pretty demos. That coincides with the OGC Technical Meeting at the same time, so it could be an interesting crowd.
Karlsruhe (Germany): June 12 - June 16
I've got an exhibit (e.g. card table) for Maply at State Of The Map - EU. Maply is obviously the WhirlyGlobe-Maply open source project. I'll be showing off the latest stuff and, if all goes well, I should have an interesting announcement or two.
I am delighted to announce support for MapBox Vector Tiles.
Vectors, vectors everywhere!
Maply 2.3 supports MapBox Vector Tiles natively. You'll see this in the develop branch in the next couple of weeks.
Gaia GPS 9.0
The folks who make Gaia GPS have been busily switching to Maply for their display. It's great to have them test out the map focused features and they've been steadily contributing back.
Contours!
And how they've been contributing! Jesse Crocker put the MapBox Vector support together crazy fast. It shares a bit of DNA with the Maply Vector Tile loader, but it's definitely it's own thing.
So can you use it? Sure, but there are details...
MapBox Pricing
We seem to have outrun MapBox's pricing scheme on this one. The Gaia GPS folks are in contact with MapBox so it's all copacetic, but before the app goes into production they'll be having discussions.
What that means to you, my users, is that you too need to sort it out with MapBox before you ship. Don't be that guy. No one likes that guy.
Odds & Ends
There's plenty more work to do here. Jesse put together the styles Gaia GPS cares about, not the ones you care about. That topo style is awesome, but it's not ideal for driving or walking in a city or whatever your app may do.
This one is just gratuitous
If only there were some way to get us to... oh wait! We're contractors! That's right, you can pay us to add Maply features or even write your app.
Jesse and I will be at State Of The Map in DC this weekend. Drop on by the Maply table and we'll be happy to show this off.
A few months ago I gave a talk at the OpenStreetMap conference in San Francisco. It was all about using vector tiles for map display on iOS.
Not San Francisco
This was based on new functionality in Maply, the 2D part of WhirlyGlobe-Maply. Since then I've improved things.
Vector Support in Maply
I've had support for vector data in WhirlyGlobe since 1.0. With version 2.2 it's gotten much better, specifically for map display. The important bit was the MaplyQuadPagingLayer and the MaplyPagingDelegate protocol.
It works like this. You provide an object that supports the MaplyPagingDelegate protocol, start up a MaplyQuadPagingLayer and wait for the callbacks. When it's time to load a tile, you load your data, convert it to a displayable form and then hand it over. The system cleans it up for you when it's no longer needed.
Now we can treat vector data like we do image tiles. If only we had a good data source...
OSM Vectors
A few months ago OpenStreetMap began providing vector data tiles experimentally. Mike Migurski was the driving force behind it, and he explains it better than I.
Tasteful buildings
The short of it is, we've got vector data chopped up into individual tiles, with some basic cartographic choices made at the various levels. The server responds much like an image tile server, but it returns GeoJSON.
That's great, but how well does it all work?
Base Map + Vector Overlay
There are two sorts of vector maps we might want to display with Maply. The first is comprised of vector data overlaid on an image base map.
That's the easier case. It's a subset of the full vector features, including roads, labels, and buildings. More importantly, the polygons are fairly simple. Which leads to the next question: How about everything?
Pure Vector Map
An entirely vector based map is the goal, at least from a technical standpoint. With pure vector on one end and pure image on the other, we'd like to dial in the appropriate mix for a given app. The OSM data is there, so how well does it work?
It works well. Quite well indeed. That's the big innovation from a few months ago: WhirlyGlobe-Maply 2.2 can handle the weird polygons it gets from the server. The tessellation is working well even for complex polygons with holes.
Room For Improvement
Nothing's perfect, of course; that would be creepy. There are a few areas that could be better, in no particular order, they are:
Parsing GeoJSON is just slow. It needs to be faster.
A binary vector data cache would make things appear much faster. For some cases it would be a big improvement.
The vector data is coming in tiny little chunks. This is messing with the drawing optimization. There are ways to fix this.
Place names are dominating the display in cities. For a real app, I'd suggest making some cartographic choices.
It needs more styles. I've broken out a few of the feature types, but more is better.
Even so, this is usable as is. Go check out the code, all open source, and give it a try.
What's Next
I build out serious toolkit functionality with serious apps. On the WhirlyGlobe side I've had some great clients who did some really ambitious things. There's been some interest on the Maply side, but so far nothing really big. The toolkit is ready (more than ready) so as soon as I reel those clients in, we should have some interesting results.
In the mean time Maply vectors are pretty stable. Go give the OSM example a look and feel free to use it in your own apps.
I'm giving a talk this year's at State Of The Map (US) in San Francisco. This is unrelated to the fact that I live in San Francisco, but convenient nonetheless.
The Talk
It's all about vector display on iOS devices using OpenStreetMap data. Scintillating.
The talk is based on my toolkit, WhirlyGlobe-Maply, unsurprisingly, and an app I built for fetching vector tiles from the US OpenStreetMap server and displaying them.
The App
The app, called osmmobilevectors, is on github and you can clone the repository, build it and put it on your own device. I mean, you're set up to do that, right? Of course you are.
Lots of interesting little bits and pieces went into the WhirlyGlobe-Maply toolkit to make this happen. I'll break it down for all three of my loyal readers next week.
As I mention in the talk, I can't show much of my work; my users can be secretive. Of those users who are not, here is a sampling of interesting apps and a few of my test apps.
Live Globe - A pretty geography app with linkages.
What marketing I do for WhirlyGlobe works out pretty well. I just need to do more of it. To that end, I've started putting together a standard presentation and looking for appropriate venues.
Here's a session I proposed for the upcoming State of The Map conference in Portland.
WhirlyGlobe - 3D Data Presentation on the iPad
Though Apple's app store is gated, there's a robust open source community surrounding it. Many of those efforts are focused on map related problems. We'll discuss one of them.
WhirlyGlobe is a native open source toolkit for iPad and iPhone that provides developers with a 3D rotating earth. With it, you can overlay vector features on image tile sets, such as those from OpenStreetMap. Data sets can range from the small to very large and WhirlyGlobe has support for swapping features in and out on the fly.
The toolkit itself is in its second major revision and has been out for more than a year. It has a number of shipping apps to its credit with more in the pipeline. Most developers build very simple apps, often a base tile set with a few point features. A select few develop apps of iPad melting complexity with multiple overlays, large tile sets, and paged vector data.
In this talk we'll cover some of the basic functionality in WhirlyGlobe (without resorting to source code). We'll also discuss some of the challenges users have in obtaining and processing data. Then we'll conclude with future work, including a planned extension to flat maps.
Is This the Right Venue?
I haven't quite found my niche for WhirlyGlobe. It's worked out quite well, but it's an odd bird. There are a number of interesting conferences that might overlap and I'm slowly checking them out. It's up to the organizers on this one, of course, but I'll be attending in any case.