PfP using Drupal

It was great to see yesterday that Dries Buytaert - the founder and lead of the Drupal project - had showcased one of the Drupal sites we have created at work. The Partnership for Peace Training Centers website is one of over forty that we have built using the Drupal platform.

The PfP Training Centres Website is a common endeavour between PIMS, PRIME and NATO, and is intended to demonstrate the potential for future collaboration in the Euro-Atlantic community.

Searching by location in Drupal

There have been great improvements to search in Drupal 4.7 including the ability to extend it to search content from different modules. What I'd like to do is incorporate location into the search (instead of being a separate tab as it presently is using the location.module), allowing people to type their search text, choose which node types they'd like to search and then type in the name of a place (eg a city) they'd like to search near to.

To simplify the input, the new AJAX autocomplete functionality could be used to suggest places based on the name you're typing in. The co-ordinates of this place could then be used to filter the nodes that were returned from the search and allow for the ordering of search results by distance if desired.

I'm conscious that a search screen should be as simple as possible, but think this would be a useful addition for people who wanted to search for things by location. Perhaps allowing people to type '[searchstring] near Stuttgart, Germany' would be a better way of allowing location based searching. The autocomplete could still be used for that as well, by autocompleting only the bits after a 'near' statement.

Any input from the community is welcome, including thoughts on the interface and on how the back end hooks in the search system may best be put into place.

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.


    Subscribe to RSS - Drupal