GeoMOOSE RFC: Feature Selection and Selection Set Tools

Date: September 24, 2010

Contact: Len Kne – lkne@…

Overview: Recent work completed for a consortium of Oregon Counties provides a dynamic set of results when using the query or select services. This allows users of GeoMOOSE to highlight and remove features from the selection set and then perform geo-processing tasks (such as buffering) on the remaining features. In several other projects, we have been working to integrate the jQuery JavaScript? library with GeoMOOSE as a user extension. The jQuery extension allows for the easy addition of advanced user interface tools, such as floating and resizable DIVs and dynamic data tables. This proposal would expand on these projects to (1) add interactive on map feature selection and (2) further refine the jQuery user extension to display results in flexible table formats.

Participants: We are looking for input to this request for comment, as well as participants to provide funding or in-kind programming and documentation time to complete this project. All development done with this project will be contributed to the GeoMOOSE project for anyone to use. Motivation: The query and select services are powerful tools in GeoMOOSE. This proposal would greatly enhance their functionality by allowing users to choose what features are included in the selection set. For example, using the select service a person could select all parcels within 100 meters of a lake shore. The results would be highlighted on the map and returned to the result tab. This proposal would allow the user to then interactively add and remove parcels from the selection set before further geo-processing takes place. For example, they may notice that one parcel that should get a mail notice was not included in the selection; the person could select that parcel and add it in the selection set before printing mailing labels.

Proposal: Much of the base development needed for this proposal is already done thanks to a consortium of Oregon counties customization of GeoMOOSE. This code should be added to the GeoMOOSE trunk within the next month. An example of how the dynamic selection set works can be seen by downloading this Flash move from  http://dev.houstoneng.net/selection_set_example.swf or give it a try at  http://polkcounty.houstoneng.net. An example of the jQuery tools to return tabular results can be tried at  http://dev_jquery.houstoneng.net/geomoose.html - use the “Select” tool to choose some parcel.

The primary enhancement is how the select and query service return the results to GeoMOOSE. Instead of using a MapServer? HTML template, which returns the results as static HTML, the new services return the geometry and attributes of the selected features. GeoMOOSE takes the response and adds the features to a vector layer and displays them on the map. Since the features are now “in” OpenLayers?, the OpenLayers? API can be used to work with the data. This service complies with the standard set for GeoMOOSE services.

This proposal seeks support to continue this work by giving GeoMOOSE users the ability to select features from the map to add or remove features from the selection set. The tool would be similar to the “selection set” tool in ESRI ArcMap? where it is possible to choose the target layer and then select features from the map to include in the selection set. The task will be accomplished by adding a GeoMOOSE tool that will select features from the active layer and send a request to the map-source to get the geometry and attributes of the feature and add that to the selection set; much of the process is similar to the hover select tool. The user could sketch a point, line, polygon, or box to select the feature(s). This tool would be able to access data from all map-sources that GeoMOOSE supports (MapServer?, WMS (if queryable), WFS, and ESRI REST service).

This proposal would also need to provide a limit to the number of selection features possible for each application. Because the service is returning the actual feature geometry (as WKT or geoJSON) and attributes, if the selection set is very large, it will impede the users experience as it could take time for this information to be returned to and processed by the client’s browser. The number of features will vary by what type they are (point, line, polygon), their complexity, and the number of attributes. Testing we have done show that selection sets with 150 parcels or point data with 500 points perform well. These limits should be high enough for most applications. The proposal would include a user set parameter to limit the number of features to return and what should be done when that limit is reached (i.e. return the partial set or revert to an HTML response, etc.). A second aspect of the project is to further enhance the jQuery DataTables? ( http://www.datatables.net) to provide flexible tabular output of the result set attributes. This includes integration of geo-processing tools such as buffering, tools for exporting data and creating mailing labels, and integration into the Mapbook for configuration.

Backwards Compatibility Issues: None. This proposal would add a new map-source type (vector), but none of the current GeoMOOSE service and APIs would be affected.