Build applications using OpenLayers 3 and OpenGeo Suite (Part 2)

OpenLayersMany of our customers use OpenGeo Suite to build applications that address specific business needs. New York City and Howard County use our software to help residents better access government services while San Jose Water Company has built several applications for internal use by staff.

Our newest release, OpenGeo Suite 4.1, includes new templates built on OpenLayers 3 that make it even easier to build and deploy Spatial IT applications. We previously showed how to create a viewer application and in this post we’ll describe how to create an editing application.

Creating a new application

First off, we’ll start creating the application using the suite-sdk command-line tool:

suite-sdk create /path-to/myapp ol3edit
suite-sdk debug /path-to/myapp

Point your browser to http://localhost:9080 and you’ll see the editing application in debug mode:

Editor application

Let’s examine the functionality that this application provides in more detail.

Editing template

This application provides the Layers Control, which was also part of the viewer template, but in addition the following editing-related functionality is provided:

  • Draw a new feature and insert it using WFS-T
  • Modify an existing feature’s geometry and send an Update to the WFS
  • Select an existing feature and delete it
  • A feature table that shows the features in a tabular form

By default the usa:states layer in OpenGeo Suite is served from a Shapefile but this is not ideal for editing purposes.  We recommend serving data from a transactional database, such as PostGIS, instead.

Unlike the viewer template, which used WMS for feature display, this application uses a vector layer rendered by HTML5 Canvas. The vector data is retrieved using WFS with GeoJSON as the interchange format for read operations. A BBOX strategy is used for loading the data.

Let’s click one of the states on the map. This will select the vector feature on the map and will select the corresponding row in the feature table. Clicking on a record in the feature table will also select that same feature on the map and zoom to it.

Try modifying one of the existing geometries (hover over one of its boundaries) and, when you’re done, click somewhere else outside of the feature which is being modified. The feature will be deselected and the transaction will be sent to the WFS. This may trigger a basic authentication dialog in the browser depending on how GeoServer has been configured.

Now click on an existing feature and press the “Delete Feature” button in the toolbar. Confirm the dialog with OK. The feature should be deleted on both the client and the server (verify this by doing a reload of your browser application).

Lastly, use the “Draw Feature” button and digitize a new polygon feature on the map. This will get sent to the WFS as an Insert transaction.

Internals

As  promised in a previous blog post about editing in OpenLayers 3 using WFS-T, it is now much easier to create an editing application without having to worry about the OpenLayers 3 internals. Open up /path-to/myapp/src/app/app.js in your favorite text editor and look for a section labeled “config section”. This section should contain all the settings you need to tweak in order to have this application work on a different data layer.

Learn more!

Find out more about using the Boundless SDK and these new templates in this Tech Talk that Andreas and I recently presented to our colleagues.

Build applications using OpenLayers 3 and OpenGeo Suite (Part 1)

OpenLayers

Many of our customers use OpenGeo Suite to build applications that address specific business needs. New York City and Howard County use our software to help residents better access government services while San Jose Water Company has built several applications for internal use by staff.

Our newest release, OpenGeo Suite 4.1, includes new templates built on OpenLayers 3. Based on Bootstrap for responsive design and jQuery for leaner code, they make it easier to build and deploy applications on modern web browsers.

OpenLayers 3 is the next iteration of the successful client-side mapping library, rebuilt using the latest web technologies. Unlike OpenLayers 2, which includes features like layer switcher or a toolbar by default, this version leaves the choice of user interface elements to the application developer. This is where our new templates come in handy.

In this post we’ll discuss the first of these templates, which serves the purpose of creating a viewer application. In the next post, we’ll discuss creating an editing application.

Bootstrapping a new application

Once you install OpenGeo Suite 4.1 and the Boundless SDK, you’ll get a command-line utility called suite-sdk. We’ll use this utility, and more specifically its create command, to bootstrap our application.

suite-sdk create /path-to/myapp ol3view

/path-to/myapp is the file path (please adjust to suit your folder structure and operating system) where our application will be created, and ol3view is the name of the template we want to use.

To run this application in debug mode, we’ll use the debug command of the suite-sdk:

suite-sdk debug /path-to/myapp

This will start up an application server on port 9080 (the default port can be changed with the -l flag), which will proxy a GeoServer instance on http://localhost:8080/geoserver (the default GeoServer proxy can be changed with the -g flag).

If we point a browser to http://localhost:9080 we will see our application in debug mode.

Application running in debug mode

View template

The view template provides a few examples of functionality that OpenLayers 3 does not provide out of the box:

  • a layers control
  • a popup that can pan into view

The layers control can be configured with a set of groups, to group certain layers together. In OpenLayers 3, it’s possible to define any extra (observable) properties on a layer object (which inherits from ol.Object). In this case we use a property called group, and a property called title for the user-readable title of the layer. Groups can be exclusive, which will have the individual layers of that group show up as a radio group, or non-exclusive which will have them show up as checkboxes. The layers control uses the mechanism demonstrated in the custom controls example.

The popup extends ol.Overlay. When a feature is clicked in the map, the information from a WMS GetFeatureInfo response will be shown in the popup, and the selected feature will be highlighted on the map. By default the WMS GetFeatureInfo request uses GML3 in the template, but it can optionally use HTML as well.

WMS GetFeatureInfo shown in a popup

Customizing the template

In this section we will show how to add a company logo to the application and we will use a different layer for the application.

Add company logo

Open up /path-to/myapp/index.html in your favorite text editor. Search for Application Template and insert the following img tag in front of the Application Template text string:

<img class="company-logo" src="http://boundlessgeo.com/wp-content/themes/open-geo/images/logo.png">

In the style section, add the following CSS class for the company logo:

img.company-logo {
height: 30px;
padding-right: 10px;
}

Save your edits, reload your browser, and you should see the company logo in the application template now.

Use a different layer

Download the Fault Lines dataset from the GeoTech Center Data Library and open it in GeoExplorer, generally available at http://localhost:8080/geoexplorer in a default OpenGeo Suite install. Click the green plus button in the toolbar at the top of the layer tree, and select the Upload layers menu option. Log into GeoServer (the default credentials are “admin” and “geoserver”) and browse for the ZIP file. Since there is no PRJ file, manually specify the CRS as EPSG:4326.

Upload the new dataset using GeoExplorer

Use the Layer Properties dialog,  find the name of the uploaded layer. In our case, it is opengeo:FAULTS0.

Layer Properties dialog

Now open up /path-to/myapp/src/app/app.js in your favorite text editor. Look for the config section. We will use a WFS DescribeFeatureType request to find all the information we need, in our case this is:

http://localhost:8080/geoserver/ows?service=WFS&request=DescribeFeatureType&version=1.0.0&typename=opengeo:FAULTS0

In the response there is a targetNamespace attribute on the xsd:schema which we will need to configure our application properly (this is the value for featureNS). The following variables in the config section need to be changed to use a different layer in our application template. Most of its values can be derived from the WFS DescribeFeatureType output:

var featurePrefix = 'opengeo';
var featureType = 'FAULTS0';
var featureNS = 'http://opengeo.org';
var srsName = 'EPSG:900913';
var geometryName = 'the_geom';
var geometryType = 'MultiLineString';
var fields = ['TYPE'];
var layerTitle = 'Faults';

Our application will now look like this:

Application using a different layer

Deploying the application in production

Up to this point we have been using the debug loader. To deploy an application in production with the SDK, we normally create a WAR file and deploy that in a servlet container. This will replace the debug version with a full build of OpenLayers 3 which uses the Closure Compiler’s advanced mode. Also, our own application code will be prepared for better use in production. To create a WAR file we can use the package command:

suite-sdk package /path-to/myapp /path-to/myoutputdir

This will create a myapp.war package in the directory that we specified as the output directory (/path-to/myoutputdir).

Learn more!

Find out more about using the Boundless SDK and these new templates in this Tech Talk that Andreas and I recently presented to our colleagues.

Boundless Connections: Ann Johnson, CEO

Ann Johnson

Over the past year, Boundless has grown tremendously: becoming an independent company, expanding and enriching our offering of Spatial IT solutions and services, and deepening and broadening our team with experts and leaders from across the geospatial and enterprise IT fields. This marks a new chapter for our company, one designed to maximize what we see as a major inflection point in this industry. As the number and type of sensors and data sources proliferate, geospatial data collaboration becomes the key problem facing the Spatial IT industry.

With that in mind, we are accelerating our transformation with the addition of Ann Johnson as our new CEO. This new chapter requires an additional set of leadership skills, and Ann delivers them in spades with her strong background in cloud computing, security, and enterprise IT software broadly. She joins us from leading security software companies, where she served in a range of executive positions and developed her expertise in infrastructure, storage, and security. Her knowledge and executive experience will greatly strengthen our leadership and team as we continue to enhance solutions like OpenGeo Suite, develop new offerings, and maximize the significant opportunity ahead of us.

Welcome to the team! What was your role before you joined us?

Thank you! I’m excited to join the team, and have spent the last few weeks developing a better understanding of the company, solutions and industry.  My background maps very well to the changes taking place in the Spatial IT industry and the transformation at Boundless. My last fourteen years have been dedicated to the cloud computing and security software industry, most recently working with the talented team at Qualys. I spent the majority of that time at RSA, leading the global fraud team, which was a very rewarding experience as the company has an excellent vision and strategy and truly allowed me to grow my career in a meaningful way.

What are you most proud of from your time at RSA?

Team building! The most rewarding part of any leadership role is the ability to recognize talent and work with individuals to help them realize their career goals. Providing the guidance, coaching and support along the way as individuals grow and develop is what I enjoy most, by far. I was fortunate to be surrounded by amazing professionals at RSA and was able to function in a true leadership role by enabling talent to make an immediate and meaningful impact.

What made you interested in working at Boundless?

Boundless has an impeccable reputation amongst customers and the wider industry for employing highly talented and passionate geospatial professionals and developing high quality, innovative solutions. The software we develop has the ability to transform the GIS industry and help it pivot into a new Spatial IT industry built on proven open source tools. The depth of talent at Boundless, the quality of the software, and the feedback I received from customers made the opportunity at Boundless too compelling to pass.

What excites you most about the tools and products that Boundless is currently developing?

Timing is everything! My arrival at Boundless coincided with the release of OpenGeo Suite 4.1, which supports deployments on AWS and VMware as well as a new MongoDB connector and QGIS package. These enhancements continue to differentiate Boundless from the competition as a true leader in the Spatial IT sector.

What do you see as some of the benefits of using open source tools?

I come from a very strong infrastructure and software background, so I’ve experienced many different technologies, solutions, services, and tools throughout my career. The most compelling case for open source is the richness of the various communities, and the speed at which they can iterate and deliver highly innovative solutions. The passion of developers who are committed to open source is evidenced by both the quality of code they develop and the creativity and dedication they use in solving problems. It is not uncommon for a problem or idea to lead to an all-night development effort with the entire community contributing in an inspiring way. This leads to an energizing culture and collaborative dynamic for companies, like Boundless, that contribute to the community and address customer challenges faster and more affordably than any proprietary solution.

Where do you see the geospatial industry moving in the future?

We’re at a major inflection point in our industry. We’re on the cusp of Spatial IT as being truly ubiquitous. As the “Internet of Things” continues to proliferate, the ability to provide contextual mapping to any manner of objects and devices, whether used by consumers or business people and professionals, will become increasingly relevant. It will just become what people expect – an integral part of how we live, work and play. We need tools that are highly scalable, flexible, easy and affordable to deploy, and easy to integrate. Geospatial is not just about producing the best or prettiest maps, it is also about providing context and producing the best geospatial data that provides real value. We are solving a major “big data” problem and looking toward the future. The company that can balance strength in the core geospatial market with a vision for the future that takes into account the larger contextual global data opportunity will be the next generation of leaders in the Spatial IT segment.

What are your plans for the future of Boundless?

That’s a great question! You can expect to see us continue to honor our open source heritage while developing the highest quality solutions for both on-premise and platform-as-a-service delivery, allowing our current and future customers to develop their geospatial-enabled applications with the utmost confidence. We have a strong reputation to maintain for industry leadership, quality, and vision. The opportunity to continue to grow the company with our current offerings while bringing unique and disruptive solutions to market is endless. We will focus on where we are strong and continue to lead the industry in the next evolution of geospatial data collaboration.

What’s an interesting fact about yourself (that you haven’t already said)?

Outside of work, I am actually quite a homebody, which often comes as a surprise to people. My non-work life revolves around my family. I am passionate about gardening, cooking, reading, and anything related to water sports. I am also a large supporter of animal rescue organizations such as Best Friend Animal Society and take pride in playing “Mom” to a houseful of rescue mutts.

Continue reading

Improved Mapmeter Integration in OpenGeo Suite 4.1

Mapmeter

Mapmeter helps developers, system administrators, and managers better understand and use their geospatial deployments. Included exclusively with supported OpenGeo Suite instances, Mapmeter helps reduce costs, optimize applications during development, diagnose critical issues, and make decisions about production deployments.

OpenGeo Suite 4.1 makes getting started easier than ever. A single click is all that is needed to begin a free two week trial of monitoring your OpenGeo Suite instance. A chart on the GeoServer administration interface will show the daily total number of requests, offering a bird’s eye view of the usage of your instance. Behind the scenes, the trial will create an anonymous Mapmeter user account and configure the GeoServer instance with a new API key.

Installation Instructions

First, install the Mapmeter extension. The specific steps will depend on your particular environment, but packages exist for all supported operating systems. Then navigate to the Mapmeter menu item in the GeoServer administration interface to access the monitoring extensions.

Finally, click on the “Activate Mapmeter Trial” button.

That’s it! Your GeoServer instance is now being monitored.

Next Steps

Once the free trial has been activated, your account will be anonymous and you won’t have access to login and view more details in the Mapmeter web application. You’ll want to choose a username and password to access the richer analytics provided by the web application.

Existing Account

Already have a Mapmeter account? Great! All you need to do is set the API key in the GeoServer administration interface. The instance will then start being monitored. If you configure a username and password, the Mapmeter chart will start appearing on the GeoServer home page as well.

Automation

All Mapmeter configuration will be stored in <data-dir>/monitoring/mapmeter.properties. Fresh installations need only have this file configured properly on startup. Additionally, there is a new REST API that allows dynamic configuration of the GeoServer instance. Enterprise customers can contact our support desk for more information.

It’s never been easier to get started with Mapmeter! For more information about Mapmeter, please visit: http://boundlessgeo.com/solutions/mapmeter/

Automated clustering in OpenGeo Suite 4.1

OpenGeo Suite

The newest release of OpenGeo Suite continues to improve deploying GeoServer in a cluster. Clustering, for those who are not familiar, allows multiple servers to handle more connections simultaneously.  This provides many benefits for Opengeo Suite in the form of increased scalability, redundancy and load balancing. We’ve mentioned how to run GeoServer in a clustered configuration (part 1, part 2) before, but these improvements make spinning up clusters even easier for systems administrators. While setting up a cluster typically involves getting servers into place then installing and configuring software, enterprise customers can quickly create GeoServer clusters using new automation options in OpenGeo Suite 4.1.

Using best practices developed and refined with help from clients such as FCC and NOAA, this new release uses the Ansible automation language to simply and efficiently deploy GeoServer in a clustered configuration either locally or on the cloud. The software will install and configure GeoServer and ancillary software resulting in a cluster that is ready to have data imported. At a minimum, each cluster contains two GeoServer instances backed by Amazon RDS or two Postgres instances. Whether deploying on Amazon or hosted virtual machines, this release makes it easier for system administrators to scale up GeoServer instances in less time and with less effort.

AWS logoCluster on Amazon

Deployments on Amazon will automatically spins up all the necessary instances, automatically install and configure the software, and create a Relational Database Service (RDS) backend as well as an Elastic Load Balancer (ELB) instance.  The RDS and ELB instances allow the cluster to load balance on the frontend, and have redundancy and scalability on the backend.

VMware logoCluster with Hosted Virtual Machines

For enterprises that prefer to host their own clusters using tools such as VMware, this release provides automatic installation and configuration of GeoServer as well as the necessary Postgres instances for data replication.  Unlike offerings on Amazon, self-hosting allows for the use of third-party load balancers of the system administrators choice.

Contact us for information about automated clustering with OpenGeo Suite.

OpenGeo Suite 4.1 Released!

Boundless is proud to announce the release of OpenGeo Suite 4.1! Each new version of OpenGeo Suite includes numerous fixes and component upgrades as well as bringing many new features and improvements to the platform, including:

  • Improved enterprise packages. Whether developing applications on OSX or deploying a Windows production system, our packages are designed to help you use our software more effectively. Now enterprise customers benefit from other typical IT deployment options like supported deployments for Amazon Web Services and VMware.

  • Automated clustering. We’re continually improving our clustering features for those needing high availability or better scaling under load. These improvements make spinning up clusters even easier for systems administrators by providing new automation options.

  • New data sources. OpenGeo Suite can now publish from MongoDB and GeoPackage

  • New Boundless SDK templates that use a production-ready version of OpenLayers 3. These free templates make it easier and faster to deploy enterprise applications built using OpenGeo Suite.

  • QGIS installer. Dramatically increase the ease and affordability of desktop analysis and editing tools with our bundled QGIS that includes the OpenGeo Explorer plugin to publish maps and data directly to OpenGeo Suite.

  • Mapmeter now included! Our monitoring service helps developers, system administrators, and managers better understand and use their geospatial deployments so we’re including the service for all OpenGeo Suite enterprise customers.

Try it!

Download OpenGeo Suite 4.1 and try our census map tutorial or heat map tutorial to learn more. Details about this release are included in the release notes and, as always, we strongly advise you to read the upgrade instructions and backup your data before installing.

Mapping #WorldCup with OpenGeo Suite and MongoDB

The upcoming release of OpenGeo Suite 4.1 supports the popular MongoDB document-oriented database with a new connector that allows GeoServer to publish geospatial data stored in MongoDB. We’re partnered with MongoDB and use their software to power services such as Mapmeter, so we’re pleased to provide enterprise customers with more choices for databases to power their geo-enabled applications.

Support for a document-oriented database like MongoDB is a first for GeoServer, which has historically supported only structured data formats. The flexibility of MongoDB coupled with support for geospatial data paves the way for some very interesting applications.

One example well-suited to storing data in MongoDB is using the Twitter search API and its support for geolocation:

  • The Twitter API provides JSON output which makes import into MongoDB trivial, since it uses BSON (Binary JSON) as its internal structure.
  • The Twitter “firehose” returns data at high frequency, so inserts have to be fast. MongoDB is designed to provide high throughput for inserts and could even be scaled horizontally for this scenario.
  • The flexibility of schemaless storage means we don’t really need to care too much about how the data is structured in the database and can change it in the future.

#WorldCup

The FIFA 2014 World Cup makes the hashtag #WorldCup a great source of geolocated tweets. With some moderate data wrangling and some geocoding, it’s possible to import about tens of thousands of tweets. With these “geotweets” in order, it is possible to display them with GeoServer. In a few clicks and a couple of keystrokes, it’s easy to create a new layer from the MongoDB.

And voila!

Here are some ten thousand tweets mentioning #WorldCup visualized on a map:

#WorldCup

Editing in OpenLayers 3 using WFS-T

OpenLayers

We’ve talked about building applications with OpenLayers 3 before, but mostly focused on how to display maps. OpenLayers 3 includes all the building blocks needed to create an editing application as well, such as support for feature editing (insert, update and delete) and writing back the changes to the server through a transactional Web Feature Service (WFS-T).

The OpenLayers vector-wfs example demonstrates how to use a vector layer with a BBOX strategy served up by a WFS such as GeoServer, so make sure to look at (the source of) this example before reading this post if you are not familiar with it already.

The parts of OpenLayers 3 that we need to support feature editing through WFS-T are:

  • ol.interaction.Draw
  • ol.interaction.Modify
  • ol.format.WFS

Insert

Let’s start with the case of inserting a new feature. Make sure to configure the Draw interaction with the correct geometry type (config option named type) and the correct geometryName. Also have it point to the vector layer’s source through the source config option. The Draw interaction fires an event called drawend when the user finishes drawing. We can use this event to create a WFS transaction and send it to the WFS server. In order to do this we’ll create an ol.format.WFS instance and call its writeTransaction method. Since we only have a single feature to insert, we’ll pass in an array of that single feature as the first argument, and null for the updates and deletes arguments. For the options argument we need to pass in:

  • gmlOptions: an object with an srsName property which uses the map’s view projection
  • featureNS: the URI of the featureType we are using in the application
  • featureType: the name of the featureType

To find out the value of featureNS, you can use a WFS DescribeFeatureType request. The writeTransaction method gives us back a node which we can then serialise to a string using the browser’s XMLSerializer object. Use jQuery ajax or the browser’s built-in XMLHttpRequest to send the string to the WFS server using HTTP POST. When the result comes back, we parse this again with ol.format.WFS‘s readTransaction method and we can obtain the feature id given to the feature by the WFS server and can then set this on the feature using its setId method.

Update

For updating the geometry of an existing feature, we use ol.interaction.Modify and we’ll use it in conjunction with an ol.interaction.Select instance. So users will first select a feature by clicking, and can then modify it. When we create the Modify interaction, we pass in the feature collection of the Select interaction. We will store a hash of modified features, which we can then use to determine if we need to send a WFS Update Transaction. We will listen for the add and remove events of the Select interaction’s feature collection. In the listener for the add event, we will listen for the change event on the feature, and once change is fired, we’ll add an entry to the modified features hash based on the feature’s id. In the listener for the remove event (which fires when the feature gets unselected), we will check if the feature is in the modified hash, and if it is, we’ll use ol.format.WFS again to write out the Transaction XML (now only passing an array of a single feature as the updates argument) and send it to the WFS server. When the result comes back, we can parse it by using the method readTransactionResponse from ol.format.WFS. We can then check to see if totalUpdates is set to 1 which gives us an indication that our transaction was processed successfully by the WFS server.

Delete

For deleting a feature, we use the select interaction. If a feature is selected, and the user presses the Delete button, we’ll use ol.format.WFS again to write out the Transaction XML, but only passing in an array of a single feature to the deletes argument. We will then again transform this into a string and send it to the WFS using AJAX.

Boundless SDK

While this whole process may sound pretty cumbersome,  the upcoming OpenGeo Suite 4.1 release we will make your life a lot easier by shipping the Boundless SDK with some OpenLayers 3 templates to facilitate creating an editing application based on OpenLayers 3. So stay tuned.

OL3 Editing App

Our new GeoServer certification course is now available!

As a core component of our flagship OpenGeo Suite product, GeoServer is one of the most important projects we work on. We helped start the GeoServer project over a decade ago and continue to be active members of the vibrant community that has sprung up around it. We’ve also provided training from the beginning. Whether as interactive sessions like those at the FOSS4G conference, online webinars, or introductory workshops, those who want to learn about GeoServer know to come to us.

Many of you have expressed an interest in going deeper with GeoServer, learning the fundamentals inside and out, in a way that a half-day workshop just can’t accomplish. We’re happy to announce that we’ve got your answer.

A (big!) new training course

Over the past few months, we’ve developed an entirely new GeoServer curriculum that starts with spatial basics and web services then moves onto administration and deployment. This course provides attendees with solid knowledge of how to use and administer GeoServer.

OpenGeo Suite: GeoServer I contains lots of multimedia and interactive content, including over one hundred exercises to follow along with and then do yourself. As tested in a classroom environment, the course is four days in length, but the online version allows you to work at your own pace and on your own schedule.

To help make  learning easier, we’ve included over three hours worth of video material, like the example above, to take you through the course. We are also available via email or during weekly office hours to answer any questions that arise during your progress.

Certification and credit

Finally, no course would be complete without a final exam, which will offer a Boundless GeoServer Certification for those who qualify. “We offer the only GeoServer certification on the market, so you will definitely want this if GeoServer is part of your skill-set. Also, for those GIS Professionals out there, this course (along with our entire training catalog) is eligible for GISP certification credit through the GIS Certification Institute. And the best part? You can enroll today.

Start right now!

The course is available online for anyone who wants to advance their knowledge of GeoServer. No need to schedule an on-site visit to one of our offices or wait for us to come to an event near you. No need to contend with time zone differences either. You can work on your own time and at your own pace.

If you’re already a GeoServer expert, then you can also skip the course and sign up for the certification exam.

We’re really excited about this new offering, and are happy to be able to open it up to you right now.

Want to see more? Great!

Spanning the Globe

Eddie Pickle

It’s rather interesting (and really fun) to be a part of both the “traditional” GIS/BI community and the newer geoweb community. Because our geospatial software makes this possible, I attended two radically different events in the past week that span this divide. One, the Location Intelligence Summit is an established event held on corporate turf  at the Washington DC Convention Center. The other, the GeoWeb Summit, is a newer meetup held in the grittier (and yet somehow more expensive) Dumbo neighborhood of Brooklyn. I felt right at home in each.

The Location Intelligence Summit, which Jody Garnett blogged about in great detail, did a great job representing the Old Guard. The event pre-dates Google Earth, a time when “location intelligence” came from geocoding customer records while Navteq and TeleAtlas drove the streets. Back then, “spatial was special” and getting and managing data in a GIS was a major effort.

GeoWeb Summit came later, when geospatial data started to come from everything (mobile devices, cameras, sensors everywhere — even my dog has a chip now! Now spatial is context for data and applications, not necessarily more special than any other aspect of data. We call this Spatial IT and Paul Ramsey presented on it at length.

Fast forward to today, and at both events there was a strong drive to get to the “now” — to capture, analyze, and visualize real-time data; leverage the crowd; track things indoors and out; and so much more. At each conference it was clear that there is no way that the applications enterprises seek for modern workflows, monitoring, analysis, application serving, and more could happen without the interoperable, scalable capabilities of open source. In the case of the Location Intelligence world, I was part of a whole new LocationTech track for high performance, location-aware technology. Here, open source is a way to get out of an historical trap of proprietary software locked doors. For the GeoWeb Summit, that’s a starting assumption. In both cases, it’s great to be a foundation for the future.