..or do geodevelopers require mathematics?

MyCircle.Area seems simpler.. Alan Skorkin has a great post on “you don’t need math skills to be a good developer but you do need them to be a great one.” Geo-technology developers have similar requirements, and the majority of GISs revolve around CRUD operations. However due to the nature of spatial data we occasionally get to meddle in the world’s of projections, geometry, typology, and set theory more than our counterparts in other sectors.

The Ancient Mysteries

There are now five bridges in Königsberg..Whilst concentrating on algorithms and recursion is a definite benefit to all developers, us spatial developers need a few more specific tricks.  Euler’s 1736 paper on Seven Bridges of Königsberg is one of the first academic writings on modern topology. The titles of these mathematics puzzles create an aura of mysteriousness and arcane knowledge that definitely sweetens the somewhat dour algebra underneath.

The solution (or non-solution) to this problem underpins many of the more advanced techniques used by GIS packages today. The “Travelling Salesman”, whilst conjuring up less interesting images, relies on similar principles of graph theory. Continue reading »

With the rise of the neogeographers, along with the increased awareness and use of GIS thanks to the web, more and more positions are open for developers looking to move away from writing business accounting logic, and into the exciting “new” world of spatial data. I’ve noticed a few gotchas that have happened to developers with no GIS background while working on projects, so this list may at least raise awareness of some of the hurdles.

image

1. Get to Know your GIS Application

Most desktop development in GIS involves building extensions to an existing application using an existing programming library. In order to avoid reinventing the wheel you need to be able to use your GIS desktop package.

Before developing any automated tasks, manually go through the process to get a feel for any issues that may arise, and learn some of the terminology used by the program for the various functions. If the application has an option for hatched polygon fills, this option is also likely to be buried somewhere in the API. If you can’t find what you are looking for then run what you are trying to accomplish past a GIS user.

Continue reading »

All projects I’ve worked on have a few days set aside for the dreaded “documentation.” Clients often try and reduce the billable hours set aside for documentation and when project delivery times are closing its often the last thing on a developers mind, so it gets cut from both sides.

I’ve come to the conclusion that a detailed and long word document, while it may tick the box on the client’s checklist, is an exercise in futility. No-one ever reads it, you’re lucky if you can even find it a year later, and its out of date the moment its written (or  if its a rehash of the technical specification its never actually in-date).

My key requirements for user documentation are:

  • make it easily accessible from within and from without the system
  • have only one repository for the user documentation
  • allow people other than the developer to create and edit the documentation
  • auto-generate when and if possible

Continue reading »

Mapfish is an open-source web mapping framework built using the Pylons Python web framework for “creating web services that allow querying and editing of geographic objects.” However the server-side functionality of the system I am currently working on is already handled by SQL Server 2008 Spatial and MapServer. What interested me more was that Mapfish “provides a complete RIA-oriented (Rich Internet Application) JavaScript toolbox.”

A couple of examples of the front-end interface can be found at the EU Inspire Geoportal, and the Marbled Murrelet Mashup. The Mapfish client combines three frameworks into one OpenLayers, GeoExt, and ExtJS.

The client JavaScript is available via downloaded from http://www.mapfish.org/downloads/. At the time of writing mapfish-client-1.2.tar.gz was the most recent version. The files can be unzipped using the open-source program 7-zip that handles both gzip and “tar ball” zip files. Once unzipped there are a number of samples that can be run and edited locally (look for the examples/map/index.html page). This alone is a huge step forward in creating a basic online mapping system that rivals proprietary offerings.

Further details on using the toolkit can be found at the Mapfish tutorial and this blog tutorial. I’ll also be writing some more technical posts, specifically around using Mapfish with Windows, as most of the current documentation assumes people are running Linux.

One of the main barriers I had to using MapServer as a web GIS server was that layers had to be symbolised iqgisn a text editor, using a MAPFILE. It was cumbersome to keep editing and refreshing a browser, there was no easy way to check for errors, and you have to learn the syntax and keywords.

Whilst this is ok for smaller projects where I could make these myself, larger projects require non-programmers to gather data, symbolise it, and handle the map layouts and creation.

I’ve just discovered that another of the OSGeo‘s projects, Quantum GIS (often abbreviated to QGIS) has a tool that can take a map project created and symbolised in the desktop application, and export it to a MAPFILE which can be read by MapServer. This seems to be the missing link in a complete Open Source GIS stack.

Continue reading »

EDN

GIS consultants and organisations that use GIS have different needs. Consultants tend to use lots of different software, for short amounts of time, whereas organisations make daily use of software from a single vendor. ESRI have followed Microsoft’s approach of a Developers’ Network (MSDN). This allows the whole ESRI stack to be used for “development, testing, and demonstration” at a reduced price. $1500 dollars gets you an ESRI Developer Network subscription, rising to $2000 if you also want the desktop applications (ArcMap, ArcCatalog etc.).

Continue reading »

I recently learned from James Fee’s blog that ArcGIS 9.4 will be the last version that supports VBA. I can see why this is being dropped – Microsoft no longer promotes or updates VBA. Microsoft now promote “Visual Studio Tools for Office” as its replacement for VBA in MS Office products, however VBA is still in Office 2007, and looks to be kept in for at least the next version. Is ESRI acting too prematurely? I can think of 7 good reasons why VBA should be kept.

vba

1. VBA is great for prototyping. There is no need to open up Visual Studio, create a custom tool, implement all its interfaces and constructors etc. before you can even get round to writing the code for the OnClick event of a button.
Continue reading »