Location-based functionality within Drupal

Having laid out last week some of the overall location-related functionality I'd like to see within Drupal, I wanted to start a proper list of areas around which I would like to see development within the Drupal community. I'll be putting effort into creating and improving many of these, and hopefully working with others who want to help as well.

I've broken down the functionality into three sections of the data flow - incoming data, internal processing and display, outgoing data and external systems. Please feel free to leave comments on which bits you'd like to see sooner rather than later, and any extra functionality that I've missed off the list.

  • Incoming data
  1. Ability to tag individual nodes in system with location information
  • by address (functionality already exists)
  • by clicking map
  • by coordinates
  • Ability to extract location information from EXIF tags in jpg images
  • Ability to automatically extract location of items from incoming feeds
    • from RSS feeds (using the geo namespace or GeoRSS implementation)
    • from KML feeds?
    • from GML feeds?
    • Internal processing and display
    1. Ability to search near location
    • by address (currently can search near zipcodes only)
    • by city/country
    • by clicking on map (or entering coordinates)
  • Listing of similaraly tagged nodes nearby
  • Mapping
    • Simple visualisation
    • Mapping nodes on top of imagery
      • Google Maps
      • Yahoo Maps
      • Maps from a GIS (eg MapServer)
    • GIS functionality
      • Point in polygon analysis (for example, to find which region a point lies in - useful for determining which country a pair of coordinates lies in, or which administrative district a point lies in)
    • Community map creation
    • Map of nodes with ability to filter by users, buddies, location, etc
    • Outgoing data
    1. Export any Drupal page as a feed (or layer) - e.g. search terms, tags, node types etc
    • RSS feeds with location imformation embedded
    • KML feeds
    • GML layers (using WFS from OGC to allow data output capabilities to be determined)
  • Ability to filter by geographic location, user, content type etc
  • Ability to export single points
    • links to maps (functionality already exists)
    • link to Google Earth placemark (complete)
    • External systems
    1. Creation of a geocoding system that can be accessed and queried by other systems (including Drupal) through a RESTful style XML interface - similar to Mikel Maron's geocoder

    updated 16th February 2006

    After the OSCMS summit

    The OSCMS summit is now over, but it's been a great week, packed full of information and activities. I've met a number of the other people interested in using Drupal for location-enabled activities, from simply tagging of content with a geographic location, to mapping those locations (and others) and actually implementing more GIS-like functionality.

    One of the things I really want to see happen (and will certainly be helping with) is making sure that we are complying to standards of geographic data sharing so that information from outside the Drupal framework can be pulled into Drupal, and information can similarly be pushed out and used by other systems - from Drupal sites (through GeoRSS feeds - or the other GeoRSS standard being proposed), to Google Earth (using KML) and also systems capable of reading in OGC-compliant feeds (probably implementing a WFS interface).

    Improving the usability and functionality of inputting geographic information is also high on my priority list, trying to get away from the largely US-centric input that is present at the moment. Of course, that's not easy when the availability of reliable and open geographic data is scarce outside of the USA.

    I'll be keeping track on here of the bits I'm working on - and others are working on - here in my blog over time.

    OSCMS Summit

    I'm lucky enough to be flying out tomorrow to go to the OSCMS Summit (that's Open Source Content Management Systems) which is being held in Vancouver this week.

    The summit will be my first chance to meet some of the large community of open source developers that support the Drupal project that much of the work I'm currently doing is based on.

    I'm particularly interested in the location aspects, how it can be improved and what new functionality can be implemented to improve the spatial awareness of sites run using Drupal. It's great to see such a large crowd of people have signed up for the geodata workshop on Wednesday so it ought to be a great opportunity to meet others interested in the same area and work together on producing some great new features.

    Mapping the Isle of Man on Openstreetmap

    Isle of Man roads mapped using OpenstreetmapBack at the end of last year I bought myself a relatively cheap GPS unit - the Garmin eTrex personal navigator. I had wanted one for a few years and frankly it felt strange having gone through two related degrees, being interested in the area, and yet still not owning one of my own. For a long time I had felt left out, not being able to take part in things like Geocaching, easily geotagging my photos or helping expand open source mapping databases.

    For the first few weeks that I had the device, I spent some time working out what situations it would work under - from being in the open, to keeping it in my pocket, to being surrounded by trees, buildings and even inside trains - and what sort of accuracy it could achieve. Whilst doing that I was also building up my database of waypoints around Stuttgart.

    Christmas time came, and it was time to head home for a short break. It was interesting holding the GPS up to the window on the plane, seeing the acceleration as we accelerated down the runway. This was all experimentation though, in the lead up to my main plan of action for when I got back to the Isle of Man.

    I wanted to drive as many of the island's roads as possible, taking tracklogs as I went, to allow me to add them to Openstreetmap, the open source database of streets around the world. It has taken me quite some time in the weeks since, but I've finally mapped just about all of the roads I drove (or at least the ones where the GPS was tracking). You can see the result by zooming in to the Isle of Man on the site.

    The mapping of the Island is nowhere near complete (it's mostly the southern end that I concentrated on), and now that I'm back in Stuttgart, I want to see if I can find people located in the Isle of Man with a similar interest in opening up this sort of level of mapping to the public. Anyone with a GPS (and computer connection) can help out by driving some of the remaining roads, or even fixing areas of the map that I've inevitably not mapped as correctly as I would have liked to have done.

    Degree certificate

    My official degree certificate arrived at home today, with a nice suprise.

    Based on provisional results I thought I'd come out with a high Pass level mark, though not quite enough for a Distinction. Having now received the certificate from UCL, it turns out I have actually been awarded a Distinction in MSc Geographic Information Science. It was brilliant news when I found out!

    Waiting for the GPS news

    I've been waiting all day to see what the new GPS plan is that the US were meant to unveil today. It sounds like it'll be similar to Europe's planned Galileo system, giving consumers location information with a higher level of accuracy.

    With a constellation of satellites already in orbit, however, they can presumably add a second frequency - and therefor better accuracy - without too much effort, easily beating us Europeans to the claim of having a more accurate GPS network.

    Google Earth for Mac OS X (+ 3D buildings)

    When I decided back in August last year to move back to the Mac, I had chosen to move to a platform that wasn't very well supported when it came to programmes like Google Earth or NASA's Worldwind. I survived without it for a while, but you can probably imagine my excitement when in December an early Mac OS X beta version of Google Earth started making the rounds on the internet. It wasn't being released by Google officially, but I couldn't help but download it to give it a spin.

    The early version seemed a little unstable at times but it had just about everything that the PC version had, and was every bit as enticing and mesmerising. Even my family agreed after I got the computer out at Christmas and opened up Earth. Fascinated for hours, we looked at places the world over, at times flying through some of the more impressive of global landmarks. Then, when I came back to work, I noticed that Google had officially launched their Mac version, leading to even more exploration.

    What I hadn't seen until last week, was the number of three-dimensional buildings that are available for placing on top of the satellite imagery. In London, for example, there is a 3D UCL campus available, as well as Centre Point, the BT Tower, the Euston Tower and the London Eye - all from a guy at UCL. In Paris, you can overlay the Eiffel Tower on the map. In the middle of the Nevada Desert, you can see the outline of Area 51 buildings, or even a slightly more exotic version. It's great to be able to fly around these buildings and explore them from a desk anywhere in the world.

    Every cloud has a silver lining

    I flew home last week for a Christmas break with family and friends. I had booked myself onto a low cost carrier (HLX) back to Manchester and then BA from Manchester back to the Isle of Man the following day. After queuing in the wrong line for about 15 minutes (Who'd have thought that 'All Flights' actually meant 'All Flights - except Manchester, which has a huge great big queue, the next aisle down'), then another 30 in the right line, I made it swiftly through to the departure area. The queue to go through passport control was short but soon grew as the guards started to become concerned that the guy in front's passport may be fake. It took them at least 20 minutes of inspection before they gave this guy his passport back. They were easier on me but still looked suspiciously at my rather worn passport under the glare of a UV light and magnifying glass.

    The flight was delayed a while, as it later turned out that the inbound flight had some technical difficulties. What that meant though was that the full plane-load of people actually got to travel in a much more spacious backup plane operated by the parent company, Hapag Fly.

    I watched with interest as the overhead screens (once they'd finished playing random Christmas music videos) started to show our location and proposed route into Manchester. This plane locator, it turned out, went miles beyond anything I'd seen on flights in the past. To start with it showed the standard plane, pointing in the direction of travel, on top of a satellite image of Europe. Part way into the flight it began to show something more interesting - virtual views out of the side windows and out of the cockpit, using detailed satellite imagery. I thought it was a great use of geographic data, especially on flights where you're going overland and where the view is obscured either by cloud or just by the fact that you're flying through the night.

    Marking your route

    When I created a map of events on 7th July here in London I wanted to learn how to do it using the Google Maps API. I did learn how to do it, although in a rather long winded fashion by copying and pasting geographic co-ordinates from Google Maps into my Javascript code for each and every turn in my journey. If I had more time then I would have written a little app to do the whole process for me. I was still thinking I would, but then today realised that somebody had done exactly the same thing over at Gmaps Pedometer.

    This nifty little script lets anybody go in and create their own routes anywhere that Google maps. Whilst you are doing it, the pedometer measures the distance for you and will even tell you how many calories you've burned if you really want to know. Best of all, if you want to show others your route, you can easily link to it.

    I will probably be making some London routes in the future, perhaps to show some picturesque walks around the capital.

    Light reading

    Mapping HacksLately I've been flicking through the excellent Mapping Hacks book which has a set of a hundred useful things you can do with maps, from simply mapping things of interest using online mapping websites to creating all sorts of things of your own. The name hacking has bad connotations to many but in this sense it literally means making the most of services which are available (in an above board sort of a way). It's a great book which you can just pick up from time to time and find a hack or two that are of interest to you. It gives a wide range of things you can do and is suitable for people at different levels of competency.

    You can read some sample hacks and excerpts from the book on its publisher's website, or see the Mapping Hacks blog.

    Web Mapping IllustratedAnother book came in the post as well the other day - Web Mapping Illustrated. This one is more about web mapping using open source software and is more to do with creating systems of your own than the mix and match Mapping Hacks of creating your own and using existing systems for all sorts of ingenious things. I've yet to look through the book properly but it is looking like it may be useful in giving me some guidance when creating a web map for my dissertation project.

    I'm really reading these two books out of general interest whilst also having to look into some of the more academic books and papers that will be useful for my dissertation.


    Subscribe to RSS - Geographic