Monday, April 15, 2013

Android Port

I'm exploring an Android port of WhirlyGlobe-Maply.  With the recent release of Maply, I'm getting a lot of inquiries about Android support.

Like this, but more Android-y
These are fairly serious companies asking about it.  If I had some way of simply dividing the cost among them, I suspect we'd already be there.  But that's not how consulting works or how corporations think, so we get to do this the hard way.

How Would it Work?

The low level rendering engine in WhirlyGlobe-Maply is C++.  I didn't plan it that way, I just like C++ for tossing data around and it meshes nicely with OpenGL.  All the higher level interaction code is Objective-C as you'd hope.

On Android, they provide the NDK, an interface for writing native C/C++ and running it on Android devices.  It looks pretty good and the OpenGL ES support looks solid.  The Java Native Interface is an exercise in pain, but it seems dependable.

The plan would be to port the low level rendering engine after a little restructuring on the iOS side.  Then we'd rewrite the Component level for Android, basically all the UI and object manipulation.

Android users would only see the nice, friendly thread-safe higher level interface and we'd hide all the crazy stuff only I understand.  Just like on iOS.

About the Money

I'm a consultant and I give WhirlyGlobe-Maply away for free, so I'm not going to do this for the heck of it.  It needs to be paid for.

A local mapping company, Gaia GPS, is interested.  They only need Maply, logically enough, so we'd just port the pieces to support that.  Full WhirlyGlobe-Maply support would have to follow based on other clients.

Their support, assuming the numbers work, would get the core toolkit ported, but it wouldn't be enough for a full Android release.  I need other clients to step up.

Update (5/14/2013)


The first try fell through, as deals do.  Now I'm shopping it around.  If you've got a lot of money burning a whole in your pocket, let me know.

Saturday, April 6, 2013

TransitVis - Urban Data Challenge

TransitVis is live on the Apple app store for iPad.  It's a free download.  Watch the video to learn how to use it.



Don't forget to go get some data.  That's sold separately (also free).

The Urban Data Challenge awards were today and we took 3rd.  Thanks to everyone involved in that.  Lots of great projects.

What's next for TransitVis, you might ask?  All the interesting technology is in WhirlyGlobe-Maply so that'll be popping up in client projects.  For the app itself... we'll wait to see if anyone uses TransitVis for anything and go from there.

Thursday, April 4, 2013

WhirlyGlobe-Maply 2.1 Announcement

The 2.1 release is now official.  Come, let us celebrate with an overly cluttered screen shot.

Now with 0.1 more functionality

What's In 2.1

Some of the less exciting changes are covered in various blog posts.  The good stuff is as follows.

  • Lofted Polygons.  They're pretty.
  • Auto-layout for makers and labels.  Now you can display lots of labels.
  • More shapes, like great circles and such.  
  • Now based on OpenGL ES 2.0 which allows for stuff like shaders.
  • Continuous zoom mode for getting really, really close to the ground.
  • The git project uses submodules for dependencies and data.  Easier to build.
  • Many bug fixes and performance improvements.

The high level Component is now functional enough to do just about anything you can do with the low level API.  The WhirlyGlobe-Maply Component interface is pure Objective-C, making it easier on developers.

As always, the WhirlyGlobe-Maply page is your main source of download instructions.

What's Next

Shockingly, WhirlyGlobe-Maply 2.2 is next.  It's already underway in the develop branch.  At this point it's looking like a performance release.  Crazy good performance.

TransitVis - How to Load Data

This post is about loading data into TransitVis.  I cover this in the announcement post for TransitVis, but it can't hurt to be even more explicit.  Plus I need something to link to from the app.

What does it mean?  Dunno.  Pretty!

How to Get Some Data


Once you've got the app, you'll need to load some data.  We processed all three of the data sets for use.  A data set consists of two geojson files and a sqlite database for each data set.  Be sure to download all three files and then upload them to the app via iTunes.

Getting Data Into TransitVis


Getting data into an app once you've installed is actually pretty easy.  Install the app first and then follow Apple's instructions for file sharing via iTunes.  Look for the app "TransitVis" in that window.

Here's what that looks like on my MacBook Pro.  Bring up iTunes.

Next page is all Hello Kitty apps

Select your iPad, like mine in the upper right there.  That should look like so.


That's right, rename your iPad 'mousebird'. [Don't do that]

Select the Apps tab up there along the top.  Then you should see something like this.

Only you're not trying to hide the name of client apps.

Select TransitVis and upload those files.

If you already ran the app, you'll need to kill it and rerun it as TransitVis looks for its data files on startup.  It should load the first data set it finds and make the others available for selection.

Tuesday, April 2, 2013

San Francisco GeoMeetup

I'm speaking at the Bay Area April GeoMeetup tonight.  I'll be talking a little bit about WhirlyGlobe-Maply and how my users consume OpenStreetMap data.

As promised (at the talk) here are my slides.

Sunday, March 31, 2013

Urban Data Challenge Entry

This is our entry into the 2013 Urban Data Challenge.  For those of you who have no idea what that is, don't worry about it.  Here's a pretty video.


The Team


Michael Dougherty and myself (Steve Gifford) beat the data into submission and built the app.  Thanks also to Dianna Fisk for testing.

The Entry


Technically, our entry is that video up there.  Not everyone is going to have an iPad (yes, it's true).  But if you do, you can get the app one of two ways.
  • You can get it for free on the app store.
  • You can go to github and compile it.  It's all distributed freely.

If you do get a copy, you'll need some data.


The Data


If you do get your hands on the app, you'll need to load some data.  We processed all three of the data sets for use.  A data set consists of two geojson files and a sqlite database for each data set.  Be sure to download all three files and then upload them to the app via iTunes.
Getting data into an app once you've installed is actually pretty easy.  Install the app first and then follow Apple's instructions for file sharing via iTunes.  Look for the app "TransitVis" in that window.

If you already ran the app, you'll need to kill it and rerun it as TransitVis looks for its data files on startup.  It should load the first data set it finds and make the others available for selection.

The Future


The app is submitted, the entry for the competition sent, and the code published.  All that remains is to describe the format we're using for the data.  We'll do that in a follow up blog post.

There were a number of interesting improvements to the WhirlyGlobe-Maply toolkit to support this work.  Those will appear in version 2.2, coming to a develop branch near you.

Thursday, March 28, 2013

Urban Data Challenge - Second Cut

The deadline for the Urban Data Challenge is on Sunday and that leaves very little time for a very interesting project.  So I'll keep this brief.

How's it going?  It's going well.

All data looks better in 3D.  It's Science.
I'll be covering this is much more detail when I submit it to the challenge web site.  For now, we're well on track and it's just a matter of what other features we can squeeze in.