Version 43 (modified by 15 years ago) ( diff ) | ,
---|
Feature Layers
- A 'Feature' is a Resource Record which has a Lat/Lon available.
Features can be Points, Lines or PolygonsFeatures can be added to the Map- A Feature Layer is a collection of Features for displaying on the Map or for exporting as a feed
- Resource
- Filtered
- Resource.Category (Report/Incident table, Missing Persons, L0->L3 in gis_location table)
- Collection of Resources <- is this required?
- feature_layer can have a query on new gis_landmark table which pulls in categories Port/Airport/Railway
- A Feature Layer is a collection of Features for displaying on the Map or for exporting as a feed
- 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 Layers whilst viewing the map, we need to write a custom layer switcher which refreshes the whole Features Layer client-side upon changes.
- To do this via a single set of Controls means having a single Vector Layer (or having to manually select the active layer!).
- Feature Layers can be filtered interactively without a server-side call to rebuild the map.
- Need the original Feature_Layer to contain the attribute which we want to be able to filter on. Can then use our custom layer Switcher to apply the Filter.
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?
- move from layer definitions to gis_config
- This list is personalisable.
Features can be exported in KML/GeoRSS/GPX/etc- Need to update S3XRC for GPS symbol detection when FeatureClass allocation changes
- Need to update gis.get_marker() when FeatureClass allocation changes
Markers
A Marker is an image used to represent a Feature on the map.
The Marker used will be:
Cluster marker if multiple markers close together- styled by size & include the # inside (when >2)
- prevents performance issues as well as making things clearer
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?
- Q: Is this required?
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
- fields
- 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
- add new gis.thematic_map table
- Styling based on values of an attribute of the resource
The Default marker
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.
- Support string substitution like %(location_id)s
- 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?
- http://gis.ibbeck.de/ginfo/apps/OLExamples/OL26/examples/labels.html
- NB We already have OnHover popups (although they could use delaying)
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
- fields:
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
Docs
- http://docs.openlayers.org/library/overlays
- http://dev.openlayers.org/docs/files/OpenLayers/Feature/Vector-js.html
- http://dev.openlayers.org/docs/files/OpenLayers/Layer/Vector-js.html
Examples
- Use HTTP to pull down Features List as XML: http://openlayers.org/dev/examples/behavior-fixed-http-gml.html
- Controls to Add/Drag Features: http://openlayers.org/dev/examples/drag-feature.html
- Select Feature (inc via Box): http://www.openlayers.org/dev/examples/select-feature.html
- Popup on Feature: http://www.openlayers.org/dev/examples/select-feature-openpopup.html
- Style Features:
- Download/Upload serialized feature data: http://www.openlayers.org/dev/examples/vector-formats.html
- Cluster Strategy: http://www.openlayers.org/dev/examples/strategy-cluster.html
Limitations
Note:
See TracWiki
for help on using the wiki.