Monday, July 27, 2015

My mapwheel story

Yesterday I backed a Kickstarter project called Mapwheel, I think it’s a really cool idea. They let you design a custom “toposcope” or map wheel showing the direction and distance of places of interest from the location where you live (or any other location you choose). You can choose various materials (wood or metal) and customize the design in various ways.

Working on the design has been a surprisingly fun and interesting thing to do. Here’s my current design, which could still change before I order:


To get the full story on the mapwheel project and the reasoning behind my choice of places, check out this post on my new travel and photography blog.

Wednesday, March 18, 2015

Review of FOSS4G NA 2015

Warning: this is a LONG post!

Note: updated 3/25/2015 with links to presentation videos where available.

TL;DR

  • FOSS4G NA was awesome
  • There were way more female presenters than at previous events
  • Mapbox was everywhere
  • Boundless wasn’t
  • Lots of new developments on vector tiles, including several efforts from companies other than Mapbox – even some promised from Esri!
  • Progress towards Leaflet 1.0 but I’m a bit puzzled that Mapbox doesn’t have more focus on integrating the worlds of Leaflet and Mapbox GL
  • Cesium is a super cool JavaScript library for doing Google Earth like apps, and had the coolest demos I saw at FOSS4G – drive a monster milk truck!
  • OSRM (Open Source Routing Machine) does incredibly fast dynamic routing, and also shows how much OpenStreetMap data has improved for routing. 
  • People are continuing to do cool stuff with D3 and other approaches to vector maps.

FOSS4G goes from strength to strength

By FOSS4G I mean both the conference and Free and Open Source Software for Geospatial in a broad sense. The conference, as with every FOSS4G I’ve been to, had a fantastic amount of energy and excitement. People were running birds of a feather sessions (BoFs) and other technical sessions until 9 or 10 in the evening. I am just super impressed and excited at the number of smart people doing great things with open source geospatial at the moment. This is clearly where the innovation is happening in the industry currently.

It happened that the Esri developer summit was happening the same week. I don’t pay much attention to that anyway, having never been an Esri person, and certainly didn’t have any spare bandwidth to do so last week. But here is a tweet comparing the two:
It is also notable how Mapbox is setting the pace and Esri is following in a number of areas. News from the dev summit was that Esri is going to adopt the Mapbox spec for vector tiles. It is good to see them adopting the emerging standard on this occasion rather than inventing their own incompatible approach which they have tended to do historically (for example with geoJSON).

More diversity

A number of people, myself included, remarked on the much greater presence of women at this FOSS4G compared to most geo tech events.
Credit to the organizing team for inviting a black woman, Denise Jacobs, to give the opening keynote. You would hope that this would be something that did not deserve comment, but in an industry so dominated by white men traditionally, this did stand out, and it set the tone for a much more diverse event.

Mapbox also deserves credit for the fact that 6 of their 10 speakers were female
I did a quick skim of the overall program and in total counted 22 female speakers and 56 male, so almost 30% female speakers. So still a way to go, but it felt like good progress.

More Mapbox

As noted above, Mapbox provided 10 speakers for the conference and they were everywhere. They received $10m in funding from Boulder based Foundry Group a year and a half ago, and have certainly moved aggressively since then, growing to 80 people and taking on a huge number of talented people.  Mapbox is driving a lot of innovation in the industry at the moment. However, I’m rather perplexed at why they’re not doing more to integrate all their cool newer stuff with Leaflet. See the sections below on vector tiles, Leaflet and OSRM for more.

Less Boundless

When I chaired FOSS4G in Denver in 2011, one concern that came up from several directions was whether OpenGeo, now known as Boundless, had too many presentations at the conference (the same question people are now asking about Mapbox!). They were definitely the company that was seen as the leader in the open source geo world then. At this FOSS4G I counted one workshop and one presentation given by Boundless. In contrast to Mapbox, they have had a high profile array of talent leaving over the past year – including Eddie Pickle, Tim Schaub, Paul Ramsey, Alyssa Wright, Jeff Johnson, and Gretchen Peterson. There are still good people there of course, and I’ve heard they are doing well in the Federal market, but they were certainly less prominent here than at other FOSS4G events.

Vector Tiles

There continues to be huge interest around the development of vector map tiles, which is being driven by Mapbox but the spec is an open standard and others are contributing to developments in this space also, which is a significant step towards widespread adoption.

I talked a bit about vector tiles in my report from the last State of the Map US conference, and I won’t repeat that here. Dane Springmeyer’s talk on vector tiles was excellent as usual.  He mentioned a post from Mike Migurski on “the liberty of postgreslessness” which is an interesting discussion on the original motivation for developing vector tiles, and is definitely worth a read (though Dane also emphasized – and I totally agree – how great PostGIS is too!).

Mapbox GL renders vector tiles in a browser using WebGL, and Mapbox Studio can both create and consume vector tiles. Vector tiles are useful both server side, where they can be used to create raster tiles in a fast and flexible way, and on the client side, where they can be used to create more interactive and flexible maps – but not in all browsers and at the cost of more computing power.

The primary Mapbox tool to create vector tiles is Mapbox Studio – it can also consume vector tiles. A couple of new tools to programmatically create vector tiles are geojson-vt, a library for efficiently slicing geoJSON into vector tiles on the fly, and tippecanoe, a command line tool that can convert very large geoJSON files to vector tiles.

Mapzen has added vector tile support to TileStache, they are providing a free OpenStreetMap vector tile service, which is used in their Tangram project.

Also SpatialDev has developed a Leaflet plugin for vector map tiles using HTML5 canvas. As they say, “though there is extensive use of MapboxVectorTiles in Mapnik PNG tile rendering as well as MapboxGL, there is a strange lacking of libraries that integrate these vector tiles directly into Leaflet”. There are various examples referenced on their web site. Spatialdev also has a very interesting looking tool called PGRestAPI which is written in node.js and provides a REST API for PostGIS that can serve data as vector or raster tiles, geoJSON, Esri JSON, and more. I plan to look at this further for work that I am doing.

As an aside, I find it interesting how much the vector tile spec reminds me of the “IFF” (Interface format file) that the IBM GFIS product used back in the 1980s, with its emphasis on compactness. They use a number of the same tricks, like dictionary encoding of attribute values, and relative encoding of coordinates.  Just when I thought geoJSON was winning in the format wars with its simplicity and readability, along comes something at the other end of the spectrum with its focus on compactness and performance, but much more complex. Obviously both have their pros and cons, it’s not a case of one or the other, but I continue to find it entertaining how cyclical the computer industry is!

Leaflet

Vladimir Agafonkin gave his usual excellent presentation on “Leaflet, WebGL and the Future of Web Mapping”. He talked about progress towards Leaflet 1.0, which will feature things like flyover animation (similar to how Google Earth flies from one location to another), improved vector rendering, and a wide range of lower level improvements. And the code is slightly smaller than the previous version, something Vlad is always focused on! He hopes to have a beta version of 1.0 soon, but acknowledged that this has taken longer than he hoped.

His talk got quite personal as he talked about some of the challenges he’d experienced and how he had really been suffering from burnout over the past year. Aside from the difficulty of running a successful open source project and the challenges that come with that, which he articulated well, Vlad is living in a country with a war going on (Ukraine) and he and his wife had twin girls last year.

He talked about how he’d mitigated this by working on a number of other cool new projects like RBush, a high performance JavaScript library for spatial indexing of points and rectangles, which sounds great, and geojson-vt which I mentioned above. But the talk of his burnout did leave me somewhat concerned both for Vlad and for Leaflet. I hope for both of their sakes that between Vlad, the Mapbox team, and the broader community, they can figure out a way to spread the load a bit more so that not so much of the weight of moving Leaflet forward is on Vlad’s shoulders.

The other thing I should mention is that I was somewhat puzzled, as were several others I talked to, that Mapbox doesn’t seem to be doing more to integrate the worlds of Leaflet and Mapbox GL. Multiple Mapbox people in multiple presentations said that they were conceptually hugely different things, but I don’t really agree with that. Yes you can’t rotate maps in Leaflet, but as someone who has invested heavily in developing some serious enterprise applications on top of Leaflet, I really want to be able to plug in vector tile layers to my existing Leaflet applications – there are multiple advantages to this even if I don’t have the full interaction that I would have with a full MapBox GL application. Third parties seem to be doing more to integrate the two than Mapbox does, as mentioned above. There is a Mapbox GL Leaflet project, but this was only mentioned in passing, it didn't get much emphasis. Also someone asked about conversion scripts from CartoCSS styles to Mapbox GL, and the answer was that they were too different to do this. Again I didn't find this a very satisfactory answer – if you’ve defined large numbers of styles in CartoCSS you don’t want to recreate all of those completely manually. Sure some complicated cases might not translate, and you would have to make further changes to take advantage of new features of Mapbox GL, but a script that at least converted basic information like colors, linestyle, fill etc seems as though it would be useful.

It just seems to me that given the massive adoption of Leaflet, it would really help adoption of Mapbox GL with some closer integration between the two – I hope they will consider putting more effort into this.

Drones – and kites!

A hot theme at all the geo conferences I’ve been to in the past year has been the use of drones for mapping, and FOSS4G NA was no exception. I have been tempted to buy a drone for a while but hadn’t been considering building one, and I nearly skipped “Building Your Own Mapping Drone from Scratch using Open Source Hardware and Software” by Ragi Burhum. However, his infectious enthusiasm now has me seriously considering a drone building project ☺.  Check out his presentation video, and there is lots of info at DIY Drones.

This was followed up by another good talk from Michele Tobias and Alex Mandel on kite photography, and a presentation in the afternoon (which I missed) on OpenDroneMap from Stephen Mather. Another good source of information is Aaron Racicot’s presentation from FOSS4G 2014 in Portland – see the video and slides. This whole area is definitely something I want to play with more.

Cesium

My vote for the coolest of the many cool demos at FOSS4G NA goes to the presentation on Cesium JS by Matt Amato. I really hadn’t been aware of Cesium up to this point, so this was one of the best discoveries of this conference for me. It’s a Google Earth like 3D globe application, but which runs in JavaScript and is much more customizable than Google Earth was. Its significance is even greater now that Google is deprecating the Google Earth API.



The most fun demo was this one which lets you drive a Monster Milk Truck around various impressive locations – you can leap into the Grand Canyon among other things (but don’t worry, the truck is indestructible and bounces nicely!). There are more demos on this page for Google Earth developers, and still more here. One application that I thought was really cool was doarama which lets you follow multiple GPS tracks over time, and look around from the point of view of any of them – shown to great effect in this example of a paragliding trip in the Alps.

OSRM

I was also super impressed with OSRM, the Open Source Routing Machine. This is an incredibly fast interactive routing library which can route all the way across the US in a fraction of a second, and you can dynamically drag intermediate points and it will reroute interactively.

Check out the presentation here and demo here – click a start and end point on the map, then drag either the end points or intermediate points around. This also shows how far OpenStreetMap data has come for routing – the main thing it is missing relative to Google now is good geocoding / address matching, and there are various efforts in progress to improve that (and also Street View, where there are also some open source initiatives, but matching that will be further away).


D3 and other vector stuff

There was less on D3 than at some other recent conferences, but Michael Bowman gave a very nice talk with a series of D3 examples that each built on the previous one. He had an entertaining quote on SVG:
Check out his map examples - choose them from the pulldown at the top. Most of his presentation was reviewing code, and to me his examples seemed far less incomprehensible than most D3 code I've seen. I plan to look through them in more detail when I can. A useful link he shared lets you browse many more D3 geo examples at bl.ocksplorer. We have been doing some work with D3 recently and I think that people are just scratching the surface of the cool things that can be done with it in an interactive mapping context.

They didn't present at the conference, but I ran into Erez Cohen of Mapsense, who I had talked to remotely a few months ago but hadn't met in person before. They don't have any publicly available demos yet, but are working on some new vector mapping technology that has very impressive performance with large data volumes. Keep a lookout for interesting things coming up from them.

Design and usability

There were a number of good sessions on design and usability. Gretchen Peterson gave a good talk on "How to Win Friends and Use QGIS". One of her top tips was "Other people will like you instantly if you make pub maps" - which is what she proceeded to do. I have been meaning to play around with QGIS for a while but hadn't managed to find the time, but Gretchen's live demo was a great introduction to QGIS as well as having lots of good map design tips. I also learned what an inverted polygon shape burst fill looks like! Gretchen will be doing a hands on version of this talk at the upcoming Maptime Boulder on April 9.

I also enjoyed the talk "Think before you code" by Lizzi Slivinski, on the design of the Toledo Flood Hazard Visualizer, which covered various aspects of usability and user interface design. This application also used D3.

And more ...

I really need to end this post :), I'm sure I've missed some important things so I apologize in advance for that. But here's a quick list of other interesting things that came up at some point, either in presentations or conversation:
  • Boost is a C++ geometry library that is a potential alternative to GEOS. One reason this is important is that GEOS can't be used in iOS applications, as Apple doesn't allow use of LGPL licensed software, but Boost can be.
  • Turf is a geometric / geospatial library for JavaScript which looks pretty powerful. Its primary developer Morgan Herlocker is now working for Mapbox and Turf is being integrated with other Mapbox offerings.
  • Torque and Windshaft from CartoDB both came up a couple of times in different presentations. Torque does really cool temporal animations. Andrew Hill showed a cool example analyzing the 1962 escape from Alcatraz. I continue to be impressed with what CartoDB is doing, and they recently acquired the services of Mr PostGIS, Paul Ramsey, which adds even more strength to their team.
  • AmigoCloud is another cool system I hadn't come across before - cloud hosted mapping including ability to make offline updates, and do two way sync of updates with an Esri system.
  • Cloudant presented about the work they're doing with CouchDB and PouchDB, including offline sync, which sounds like another interesting thing to explore.
  • I missed the GDAL talks but heard there is lots of activity there with GDAL 2.0 coming soon, integration of GDAL and OGR (raster and vector), new geometry types including curves, and more. 
  • I also missed out on most of the PostGIS talks this time but there was a whole PostGIS track and lots of discussion on topics like raster processing and spatial analysis. We use PostGIS extensively in large and demanding enterprise applications, and it's great.
  • One of my colleagues went to the workshop on PySAL, a python library for spatial analysis, and was very impressed with its capabilities.
  • A couple of cool open source 3D globe applications for iOS and Android are WhirlyGlobe-Maply and glob3mobile.
  • I took a side trip with Jeff Johnson of Aero Glass, whose advisory board I'm on, to visit ODG in San Francisco, who are one of the leaders in augmented reality glasses. Their latest hardware is really impressive. It currently sells for around $5000 but they are planning to bring out a more consumer focused model this year which will be significantly less expensive.
  • The ODG side trip was great, but unfortunately it made me miss the keynote from Planet Labs, who are doing very cool things with tiny imaging satellites. Frank Warmerdam of GDAL and OSGeo fame is working there these days.
  • Linda Hecht who was formerly Chief Marketing Officer at Esri, and had worked there for 28 years, left them recently which I found interesting. She attended FOSS4G to find out more about the open source world, and left suitably impressed:

Summary

So all in all, FOSS4G was another great brain-filling event, lots of interesting things to research further! All the presentations were recorded, so I encourage you to check those out, they are starting to appear on youtube. I think that the plan is that there will be links from the FOSS4G NA schedule pages too - click through on individual talks to see more details, and a number of those pages also have links to speakers' slides.

Monday, August 25, 2014

Denver Union Station guide

This is slightly off topic, but as a side project I have just put together a small web site which is a guide to all the cool new developments at Denver Union Station. If you live in (or are visiting) the Denver area and haven't checked out Union Station recently, you definitely should! And to make it not totally off topic, there will be an interactive map appearing on the site shortly, I just decided to get some basic content out there first. Have been dabbling with both CartoDB and Mapbox for this, or might do a custom Leaflet app, we'll see! So anyway, if you have any interest, please check out Union Station Guide!

Monday, April 14, 2014

Report on another great State of the Map conference

Summary

I spent the past weekend in Washington DC for State of the Map (SotM) US, the OpenStreetMap conference. It ended up selling out, with around 500 attendees, making it the largest OpenStreetMap event yet. As with previous SotM events I’ve attended (the last one being in Denver in 2011), I found it very enjoyable and interesting, and there was great energy about it as always, much more than at traditional GIS events. Many thanks to the organizing team for a great event!

State of the Map US 2014

Below I summarize a number of items that I thought were of interest. I should also say that I missed a number of interesting presentations - there were two tracks and much of the time I wished I could have been in both talks! Fortunately though all the talks were recorded so I will check out those I missed online, and recommend you do too! Actually most of the talks are already online - just click through on the online schedule. Well done to the SotM organizing team for getting this done so quickly and professionally!

I also got some nice pictures of cherry blossom, and saw my English football (soccer) team, Liverpool, win a hugely important and exciting game against Manchester City together with several other SotM attendees, at the Queen Vic pub, home of the DC Liverpool Supporters Club - thanks to Jeff Johnson of Boundless for being the ringleader on this outing!

Vector tiles

The most interesting and potentially significant announcement was that MapBox released the spec for their vector tiles format, which they have been talking about for a while, and have been using internally to generate dynamically styled raster tiles at mapbox.com. Dane Springmeyer talked about more technical aspects of it, and Nicki Dlugash from Mapbox and Mamata Akella of the National Park Service talked about using Tilemill 2, which can both consume and export vector tiles, from a user perspective.

One nice aspect of rendering vector tiles directly in the browser is that you can do very interactive zooms and nice transitions, as shown in this short demo from Nicki's presentation. Another advantage is that you can do very dynamic restyling, on the server or client. And thirdly there are attractions for offline use in terms of data volumes compared to raster tiles.

Vector tiles are not a panacea though, raster tiles continue to have their advantages too. A key one is being able to exactly match complex symbology from an existing GIS, which is important in a lot of the applications we work on at Ubisense - large utilities can have a hundred feature types, thousands of symbology rules and complex custom annotation, which is not easy to replicate. Also raster tiles give great interoperability between different systems, an advantage that many people underestimate. And they work well in older browsers, whereas most vector technologies require newer browsers and a lot of large enterprises are still stuck on older versions of Internet Explorer :(. This is less of an issue for mobile apps on tablets or smart phones though.

As an aside, I find it a bit ironic that when I started doing GIS in the 1980s, most products then stored their graphics in map tiles, which caused various problems with editing in particular, and managing features that were split between multiple tiles. The big focus of everyone in the industry at that time was to move away from tiles to a "continuous database" where you didn't have to split things across tile boundaries. But now tiles are cool again :) !! It's interesting how many computing problems oscillate in a similar way, moves between thin and fat clients being another example - mainframes to PCs to web browsers to smart phones, etc.

But caveats notwithstanding, these vector tiles definitely have a lot of potential and I certainly plan to be playing around with them in the near future!

Licensing

The elephant in the room with OpenStreetMap, unfortunately, continues to be licensing. I hesitate to even get into this topic, but will try to briefly summarize. There has been a long and painful process over the past several years to migrate the license for OpenStreetMap from Creative Commons to a new license called ODbL. Many smart people, many of whom are friends of mine, have put a huge amount of effort into creating this new license and managing the difficult process of steering the community through the change, all with great intentions. A key part of both the old and new licenses is the notion of "share alike" - roughly speaking that you can take a copy of the OpenStreetMap data, but if you make improvements to the data then you need to also make those freely available under the same license.

However, there was a very strong message from a range of organizations presenting at the conference that they were prevented from doing much of what they would like to do with OpenStreetMap because of the license - from government organizations like USGS, New York City and the National Park Service (NPS) to private companies like MapBox and Foursquare. Alex Barth did a presentation just on the licensing topic. I am not a lawyer, and I have also been steering pretty well clear of the license discussions in the last year or two, but I think there are two broad areas of concern. One is that if you use OpenStreetMap data in conjunction with your own private data, if there is sufficient interaction between the datasets then there is a risk that he license could oblige you to make your private data freely available also, which is obviously not acceptable in many situations. Some things are clearly fine, like just using OpenStreetMap tiles as a backdrop to your data. But when you get into editing the underlying data in some way then it's more complicated. A second category is that certain government organizations like USGS and NPS are mandated that the data they create and maintain has to be public domain. So they are unable to incorporate OpenStreetMap data as they would like to, because then at least some aspects if not all of their data cannot be released as public domain, it has to have the ODbL license which imposes additional conditions on the use of the data.

There seem to be two schools of thought on how to proceed, as articulated by Mikel Maron:

The first category of problems could arguably be mitigated by further clarifications on ODbL, for example detailing specific use cases that are or aren't acceptable. Part of the problem is that since ODBL is a new license, until there are some law suits involving it, there isn't a legal precedent for how certain things will be interpreted (again as I understand it, I am not a lawyer or overly close to this!). However, I personally don't see how the second category of problems can be resolved without dropping share alike, it's just fundamentally incompatible with mandates that these government agencies have.  

From my non-legal and somewhat removed perspective, I would really like to see OpenStreetMap be public domain. I fully understand the rationale for why we started out with a share alike approach, but I think it's just run into a lot of problems now, as seen from the various user presentations I mentioned. But it's also difficult to see how to get from here to there - having just been through a very divisive and often vitriolic multi-year process, which drove many people (including me) to be less engaged with OpenStreetMap, I don't know if many people are going to have the appetite for another license change. But who knows, perhaps there are new people who have the energy for it! It just seems to me that if organizations have to pay lawyers huge sums of money to decide whether they can use the data as they would like to (and often get the answer "no" back), then we don't have the sort of free and open database that I think most of us want.

Anyway, enough of that, back to more fun stuff ...

Passive Crowdsourcing

I have thought for a while that one of the next big steps for OpenStreetMap, and other crowdsourced map initiatives, is to make more use of passive crowdsourcing to complement the active crowdsourcing that has been the focus so far. By this I mean things like gathering bulk GPS traces from phones or in car navigation systems, and from this you can deduce a lot, like whether there is a road that is missing from the map, as there are lots of cars going through empty space at 30mph, or whether a one way road is incorrectly tagged, etc. To some degree OpenStreetMap is at a disadvantage here compared to the likes of Google and Apple, who have more direct access to GPS tracking information from navigation applications running on many smart phones.

However, Telenav has been doing a lot with OpenStreetMap and Kristen Kam talked about their work. One thing they do is to identify potentially incorrectly tagged one way streets, by comparing the direction of GPS tracks versus the underlying OSM data. Currently these changes are pushed into MapRoulette, which presents a sequence of small fixes to a user for them to validate and either fix or not - Martijn Van Exel talked about this. I tested this out, and personally I found that most of the time (admittedly from a small sample), I couldn't tell whether it made sense to change a street to one way from the aerial imagery. I think potentially it would make more sense to make this particular type of edit as a direct batch update job - but nevertheless MapRoulette does work very well for many types of fix.

Another cool example of leveraging passively crowdsourced data came from Strava, who have an application that tracks runners and cyclists, and they have a very large number of GPS traces along trails, comprising billions of GPS points. Digitizing winding trails manually is quite time consuming, and Paul Mach presented a very cool solution called Slide, which has some pretty elaborate mathematics behind it, but basically would snap a very roughly digitized path to the "center of gravity" of the traces running along that path. You can try an interactive demo here, which I think is pretty cool! They also have a version of the same functionality that is integrated into (a fork of) the OpenStreetMap iD editor.

In general, it seems as though OpenStreetMap's routing capabilities have improved quite significantly, and there are a lot more applications using it for this purpose. 

Geocoding

Apart from routing, another historical weakness with OpenStreetMap has been addressing / geocoding. There is also quite a lot of effort going into this area, but it would seem with not as much progress yet as we've seen with routing. Randy Meech gave an interesting presentation on Mapzen's work on an open source geocoder, including autocomplete capabilities. You can check out a live demo of their "Pelias" geocoder here. It has a knowledge of neighborhood names in many cases, but is more limited on individual house addresses (because of what's available in OpenStreetMap). If you drag the map around it also does reverse geocoding based on the location of the target, where possible.

David Blackman of Foursquare gave a very entertaining talk that touched on a range of topics, including the construction of neighborhood and other boundary data from OpenStreetMap plus some other sources. One of the outputs of this work is Quattroshapes, where you can download a variety of useful polygon data for free. This data is used by Pelias and some other gecoding initiatives, I believe. Tyler Bell also gave a good talk focused on reverse geocoding, and there were multiple talks on doing address imports from county GIS datasets. 

And more ...

I'm running out of time and energy here, so just a quick bullet list of a few more miscellaneous things that I think are worth a mention:
  • An interesting presentation from Mike Skalnik on what github is doing with geoJSON - sort of cool for smaller simpler datasets, but with limitations for more complex applications
  • Jeff Johnson of Boundless talked about GeoGit, which is an ambitious initiative to manage distributed updates, and something I've been interested in exploring but haven't had a chance to get to (one thing we did a lot of work on at Smallworld back in the early 1990s was version management, which has a lot of parallels with this). Jeff talked about some interesting scenarios in how this could potentially be used to manage two way sync between OSM and a local government (or other) GIS (license constraints permitting!)
  • In the bar at the end of the conference I chatted to Morgan Herlocker, who is developing an open source library I hadn't come across called Turf, for geospatial processing in JavaScript (server or client side) - sort of like a GEOS or JTS, but independently developed. I haven't looked at it in detail, but it seemed like this could be useful for some things we are working on.
  • Mapillary is an interesting looking project that aims to create a crowdsourced Street View from stitched together photos taken by smart phones, something that I've been thinking for a while is a project that is needed. You can download their app for your smart phone and upload some pictures - I had a very quick play capturing some data near my home this afternoon and it came out fairly well, I will experiment more in due course.
  • John Firebaugh gave an excellent talk on "Implementing change in OpenStreetMap", with lots of great insights on managing community based projects. He had a lot of good one line pearls of wisdom, one that I liked in particular was that "perfect" is the enemy of "much better than we have today". 
  • Lyzi Diamond gave a great talk on "Maptime" meetups, which I found especially interesting as one of the organizers of the Geospatial Amateurs meetup in Denver. They take a very hands on approach to helping people learn new things, and have developed quite a few lessons and tutorials that are available on github, and I certainly plan to look more at those.
  • OSM Tchoutchou is an entertainingly named site that maps French trains in near real time using OSM, which is quite cool to watch.
And there's much more too - sorry for those whose presentations I didn't get to (either physically or in this post), but I really am out of time for now, and want to get something posted. Thanks again to everyone involved for making it such a great and energizing event. And I encourage everyone to watch the recorded presentations.

Monday, April 29, 2013

New "Geospatial Amateurs" monthly meetup in Denver

Myself, Nate Irwin and Jason Sanford are starting a new monthly meetup in Denver called Geospatial Amateurs. We plan to have a few short talks each month and hang out for a few drinks and chat about interesting things that people are up to in the geo space. The first meeting is this Thursday at Galvanize, come along and say hi! Details here.

Tuesday, January 15, 2013

What's new with JavaScript and geospatial - wrapup from the js.geo event

The past couple of days I've been at the js.geo event in Denver, which was a small informal conference focused on JavaScript and geospatial, organized by Chris Helm, Steve Citron-Pousty and Brian Timoney. I've been head down on customer projects and product development the past few months, so it was great to get out and see what's going on in the broader world. As usual with this type of event I was blown away by how much cool new stuff people are doing - it's definitely a tough job to keep up with everything that's going on these days! The attendees included a great cross-section of people involved with the major geospatial JavaScript projects. I've said this before, but increasingly I find that informal "unconference" style events, which are either free or very cheap (this one had a registration fee of $11.54!) provide an experience that is just as good as, if not better than, the larger, more expensive and more organized conferences.

My brain is overflowing at the end of the two days, and I have lots of things I want to look into more. This post is mainly a list of items I found interesting with some links. Apologies in advance to anyone / anything I missed out! Without further ado ...

D3

D3 is a very cool general purpose JavaScript interactive visualization library, developed by Mike Bostock, that includes some good (mainly vector) geospatial capabilities. This was probably the hottest topic at the conference, lots of people talking about it and incorporating it into demos. Here's a blog post from CartoDB with some examples. D3 supports a new format called TopoJSON, which is similar to geoJSON, but supports topology to eliminate redundancy. For polygon data this can reduce data volumes by around 80% (compared to regular geoJSON). It also lends itself to robust simplification of polygons


Leaflet

Several presentations, including this one by Aaron Ogle, confirmed the impression I had that the Leaflet JavaScript mapping API has great momentum. Matt Priour in his presentation on OpenLayers acknowledged as much with his pitch that OpenLayers was "almost as convenient as Leaflet and twice as powerful". One of the key selling points of Leaflet is its simplicity. Matt said that in discussions about OpenLayers 3 there were proponents of just moving to adopt Leaflet instead of doing a major redevelopment of OpenLayers, but it was decided for various reasons that OpenLayers 3 was needed - you can see further discussion on its aims here. It's important to be aware that OpenLayers 3 will not be compatible with OpenLayers 2, it's going to be a fresh start. We are looking seriously at using Leaflet for a future version of our Ubisense myWorld application.


CartoDB

I continue to be very impressed with CartoDB. They first launched the product at FOSS4G in Denver in 2011, and released Version 2 in November 2012, with lots of cool new features. These include a new system called Torque which does beautiful spatio-temporal visualizations, and new density maps using either hexagons or squares. I definitely plan to work on including CartoDB in the solutions that we're offering. Check out Andrew Hill's presentation.


Mapstraction

Andrew Turner gave a lightning talk about Mapstraction, a library that provides an abstraction layer for the major mapping APIs. Last time I looked at this I had the impression it wasn't being very actively developed, but it seems I was misinformed! This is something I want to investigate further too. There's a nice sandbox demo site here.

MapBox 

The folks at MapBox also continue to do a whole range of interesting things, from their TileMill map rendering product to a range of map sharing tools at Mapbox.com to their iPad application. A little while ago I did a simple demo with some utility data using various bits of MapBox infrastructure, borrowing heavily from this example (you'll probably need a browser other than Internet Explorer for these to work). As well as giving a workshop, Will White talked about their server side architecture which uses node.js (JavaScript on the server).

Ubisense myWorld

I did a short presentation and demo on what we're up to with Ubisense myWorld, building web applications for utilities and telecoms using Google Maps and various open source products. I'll do a longer post soon on what we've been up to recently, but we got some good interest in what we've done with Google Street View, including the overlay of linear objects like gas pipes, and also in work we did to help a customer with recovery efforts after Hurricane Sandy. Thanks to Steve Citron-Pousty for his summary:



WebGL

Brendan Kenny from Google gave an interesting talk on WebGL, which brings high performance 3D (and 2D) graphics to (most) web browsers (no prizes for guessing which one is the main exception!). He did a really impressive demo that involved displaying very large numbers of points in the browser with dynamic charts based on the current map window and dynamic filtering tools.

Miscellaneous other links

In no particular order ...

npm is "Node Packaged Modules" which was highly recommended by Will White for managing either server side or client side JavaScript Code.

openweathermap.org is a cool resource for free and open weather data.

Backbone.js and Marionette.js, which builds on top of Backbone, were highly recommended by Dave Bouwman as frameworks for building complex JavaScript applications. I definitely plan to look more at these for what we're doing. Ember.js was also mentioned as an alternative.

Max Ogden's geoJSON utilities got several mentions, a lightweight JavaScript library that supports some core spatial operations like point in polygon, distance and more on geoJSON data.

The Google Visualization API looks like a nice library for visualizing data tables and charts.

PhantomJS is a headless webkit browser that is useful for various things including browser screen capture and testing. This blog post talks about using it to implement a web map printing tool. Alfred Sawatzky talked about how he used this to capture periodic screen shots of his company iFactor's outage maps during the Hurricane Sandy recovery.

Rickshaw.js is a JavaScript toolkit for creating interactive time series graphs.

The ESRI CityEngine Web Viewer is a cool application for viewing 3D city models in a browser without any plugins. You can see various examples here, press the play button at the bottom left for an automated tour of a model. This one in Philadelphia is impressive.

Simtable are doing interesting things with projecting animated data onto 3D models.

MongoDB is a scalable open source NoSQL database that provides geospatial support - up until now just for points, but about to have support for any geoJSON geometry and operations like point in polygon etc. Steve Citron-Pousty ran a workshop on this which I would have liked to have gone to, but I went to the MapBox / CartoDB one instead.

So, lots of things to research and absorb!!

Update: Tyler Burgett also shared some excellent detailed notes, and Steve C-P has posted a good summary too.


Tuesday, August 21, 2012

Hangout with James Fee to discuss the future of GIS

Just a quick post to let you know that tomorrow I'll be doing a hangout with James Fee to talk about the future of GIS. If you watch live you can send in questions for either of us via chat. If you miss the live show, a recorded version will be posted shortly afterwards. Full details of this and James' other hangouts here.

Update: here's the recorded version of the hangout, we had an interesting chat and could have easily carried on for another hour I think!