Thursday, July 25, 2013

Web Map Service (WMS) Support

The Web Map Service protocol has been around a while.  A long while.  I just got around to implementing it in WhirlyGlobe-Maply.

Add witty caption
Of course the toolkit has been able to do this sort of thing since 1.0, but with a variant of TMS.  I think.  You know, what OpenStreetMap and Google publish.  Bing does something weirder.

Anyway, you can do WMS now in your WhirlyGlobe or Maply app.

The Code


All this is in WhirlyGlobe-Maply 2.2, a rather massive update to the toolkit I'll be publishing shortly.  It's in the develop branch if you're feeling frisky.

Here's how you'd add the NAIP ortho quads to your globe (or map).

Pretty simple, actually.  Here's all we're doing.

  • Create a coordinate system that describes good old WGS84 lat/lon.
  • Setting up a tile source to point to the WMS end point.
  • Starting a new layer which uses that tile source.

Incidentally, you can write your own tile sources now.  The code for MaplyWMSTileSource is pretty simple and it lives at the Component level.  That means it's entirely Objective-C.

Oh, and I don't think you should do this for WMS sources you don't own.  WMS is much more general and I'm using it for tiles, which is... yeah.  Anyway, be sure you know what services you're hitting and how they feel about it.

Thursday, July 18, 2013

COM.Geo Talk - Monday July 22

I'm giving a short talk on WhirlyGlobe-Maply at the COM.Geo conference in San Jose on Monday.

It's a 10 minute overview of the toolkit, who uses it, what it's for and such.

Here are the slides.

Sunday, July 7, 2013

StrataLogica 2.0

This is a beast of an app based on WhirlyGlobe.

Woo!  Topical!
They've got a free mode, so I suggest checking it out.

The 2.0 version just came out and it's a lot of new functionality and a whole new interface.  You can draw on the globe.  I kid you not.

They're going for schools here.  Teachers, students, geography, history, that sort of thing.

WhirlyGlobe


Of course it's all about me, so yes it's using WhirlyGlobe-Maply.  More WhirlyGlobe than Maply, for sure.  StrataLogic 1.0 was using WhirlyGlobe, but I never got around to posting about it.  Er, duh.

Anyway, without going into too much (any) detail on the inner workings, there are a lot of moving parts here.  The interface is entirely the product of a talented team at RoundArch Isobar.  The data sets are shared with the desktop version, which is based on Google Earth and owned by HerffJones-Nystrom.

I did the globe portion, as you might guess.  That may look like the big piece, but trust me, it ain't.  That interface is pretty deep.

WrapUp


These guys have been a client for the better part of a year and it's nice working with a team.  They've been willing to experiment and bring the necessary resources to bear.  I think the result speaks for itself.

Friday, June 21, 2013

Android Port: Begging for Money

I'm getting a lot of queries about an Android port.  Just to recap, I make the WhirlyGlobe-Maply toolkit, an open source 3D interactive globe and map display toolkit for iPad and iPhone.

Globe                            3D Map                         2D Map
Most of the development I do is incremental.  If I add, say, font based text rendering it doesn't cost all that much and one client can pay for it.  Everyone else gets the benefit and that's how open source works.

The Money


Some things are just too big for that model.  An Android port isn't like a feature request, it's big.  How big?  About $50k (USD).

Normally I'd approach this one of two ways:

  1. Do it myself.  I absorb the cost of lots of features no one really wants to pay for.
  2. Wait until a big client needs it.  Pretty likely, but could take a while.
This is just too big for the former.  Remember, I give this stuff away.  The latter will probably happen... eventually.

What if I could speed that up?

The Engineering


I've bid an Android port on several projects now and worked out the details.  Here's how it would go.

The core rendering modules of WhirlyGlobe-Maply are largely C++. We would be making heavy use of the NDK on Android to port the rendering engine.  

The first step would be to move more of the rendering modules into pure C++ on iOS. This has the virtue of being easily testable with the current toolkit.

The next step would be a direct port of the rendering engine modules to the Android NDK.  After that we would rewrite the threading and messaging logic in Java for Android as well as the various interface logic to go between Java and the rendering engine.

Lastly, we would rewrite the high level interface in Java. This would correspond to the Component level on iOS. These objects need to be native Java and function in ways Android developers expect, just as the Component on iOS is native Objective-C. 


The Appeal


A lot of companies are interested in an Android port of WhirlyGlobe-Maply.  Some are using the globe, but most want to do custom map display on both platforms.  Mine is probably the best open source toolkit for that and superior to a lot of the commercial solutions.

So, I'm talking to you guys here:
How much would you kick in for an Android port?

Drop me an email and let me know.  If I hit a certain threshold, I'll come back to you for details.

Monday, June 17, 2013

CartoDB Example

I whipped up a guest blog post over at the CartoDB blog.

France!
That's a simple app that queries country outlines from their spatial database service.  Lot of interesting possibilities there, go check it out.

Saturday, June 8, 2013

State Of The Map - San Francisco 2013

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 green is marijuana cultivation.
You can go grab the slides there.

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.

Friday, June 7, 2013

OpenStreetMap Vectors

I've got a talk tomorrow at the State Of the Map US conference in San Francisco.  It's about paging tiled vectors straight form the US OpenStreetMap server.

Naturally, there's new functionality in WhirlyGlobe-Maply to support this stuff.  Here's a teaser.

There are no clouds in California.  Be serious.

That's a base map overlaid with vector roads, which is one of the options I'll be talking about.

I'll put the talk up next week along with a deeper technical explanation.