wiki:BluePrintGISFeatureLayers

Version 40 (modified by Fran Boon, 14 years ago) ( diff )

--

Feature Layers

  • A 'Feature' is a Resource Record which has a Lat/Lon available.
  • Features can be Points, Lines or Polygons
  • Features can be exported in KML/GPX/etc
    • Need to update S3XRC for GPS symbol detection when FeatureClass allocation changes
    • Need to update gis.get_marker() when FeatureClass allocation changes
  • Features can be added to the Map
    • A Feature Layer is a query of Features
      • Resource
      • Filtered
        • Resource.Category (Report/Incident table, Missing Persons, L0->L3 in gis_location table)
      • Collection of Resources <- is this required?
  • Features can be removed from the map or moved on the map interactively.
    • To do this via a single set of Controls means having a single Vector Layer (or having to manually select the active layer!).
      • Build up this Vector Layer from multiple Feature Layers
      • In order to be able to dynamically enable/disable individual Feature Groups whilst viewing the map, we need to write a custom layer switcher which refreshes the whole Features Layer client-side upon changes.
  • User can define which layers should be selectable/enabled-by-default in the Situation Mapping layer switcher.
    • This list is personalisable.
      • move from layer definitions to gis_config
        • Have 1->M for Feature_Layers for available.
        • Attribute of visible stored in a separate multiple field.
          • Combine with special widget?

Markers

The Marker used for the Features will be:

  1. Cluster marker if multiple markers close together
    • styled by size & include the # inside (when >2)
    • prevents performance issues as well as making things clearer
  2. The Feature marker (if defined)
    • Q: Is this required?
      • Removing it will make for a more consistent User Interface as the symbology can be trusted
      • Removing it will speed things up the operation of gis.get_marker()
    • Q: If kept, should we provide an option to allow the FeatureClass icon to over-ride individual Feature Icons?
  3. The FeatureClass marker (if defined)
    • Styling based on values of an attribute of the resource
      • add new gis.thematic_map table
        • fields
          • value_low
          • value_high
          • marker_id
      • add field, thematic_map_id (multiple=True) to the gis.feature_class table
      • Q: This is for display in specialist report views only? (not main Situation Mapping)
      • Q: Is variable markers sufficient? Would size/colour of basic vectors be better?
      • once we have core functionality, want UI to be able to choose the attribute, the values & the markers
  4. The Default marker

Markers BluePrint

Popups

Clicking a Feature should bring up a Popup

  • This can be a URL to load (flexible, but slow)
    • define the URL in FeatureClass? FeatureGroup?
    • Future: allow inserting a per-feature popup_url into the query before passing into API, e.g.
      features_query = db(query).select()
      for feature in features_query:
         feature.popup_url = URL(r=request, c="vol", f="vol") + "%(location_id)s"
      
      • Support string substitution like %(location_id)s
        • the onFeatureSelect control is per-layer not per-feature & so feature-specific aspects need to be evaluated client-side in Javascript.
  • If not provided, the default is:
    • Loaded into the map during main load: no server-side calls
    • Header should be found from a set of common options (name/code)
      • How to do this with JOINed queries?
    • All the list_fields with their labels
    • A link to open the record in a new tab

Clicking a Cluster should bring up a Popup

  • a list of the features within the cluster
    • each list item is hyperlinked to bring up the Feature's Popup (as well?)

Q: Provide option to add Labels to Features?

Implementation

Option A (preferred)

Hardcode the link between FeatureClass & Resource (with optional category, e.g. for 'Report/Incident' table)

  • Add optional category_field/category_value columns to the feature_class table
  • If wanting feature-specific markers then add marker_id to resource tables (by bundling with location_id)
  • Replace feature_group table with feature_layer table
    • fields:
      • name
      • resource (used to populate the query field via an 'onvalidation')
      • filter_field (optional. used to populate the query field via an 'onvalidation')
      • filter_value (optional. used to populate the query field via an 'onvalidation')
      • query (hidden behind 'Advanced' button?)
      • marker_id (optional: over-ride all markers for this query)
      • comments

Option B

FeatureClass is an attribute of the link table

  • location_id extended to include feature_class_id (& marker_id) fields
  • => a Feature Group cannot be a collection of Feature Classes since we can't trawl through all resources to see if any of them have been tagged for this FC

Storage

BluePrintGISStorage

Docs

Examples

Limitations


GIS BluePrints

Note: See TracWiki for help on using the wiki.