wiki:HaitiGISToDo

Version 82 (modified by runneals, 15 years ago) ( diff )

--

Haiti

Haiti GIS

bitner, gavin_t, flavour & tcarobruce coordinating in #sahana-gis

dokotreas & runneals joined the team

Bugs

Documentation

I don't think we should do much more yet due to the fact that this is not final and we're changing the UI.

Map-based Lat/Lon Data entry

  • Provide a function to allow selecting a location on a map to populate
    • Points: Lat/Lon fields
    • Polygons: WKT

Fix the map-based gis_location.represent

Currently this is commented out in models/03_gis.py

Want to separate out HTML representation .represent's from Export ones (i.e. all the rest).

  • Plan for this in-progress

Location Entry

  • Record source and associated error (related so posted under a single trac ticket 158)
    • Ability to record Location Data Source for all locations (GPS, Imagery Analysis, etc.)
    • Ability to record location estimated accuracy (meters)
  • GPS Conversion Tool
    • Accessible from /gis/location/create
    • Should support negative degrees!
    • Ideally should allow setting of N/S & E/W instead of having to remember the +/-

UI

Admin UI

  • Provide admin UI for feature_to_feature_group, feature_class_to_feature_group, etc
    • controllers/gis.py & views/gis/...
    • Features are stored in the table gis_location
    • Feature Classes are types of Feature & determine their Marker (Icon): gis_feature_class
    • Feature Groups are collections of Features & Feature Groups & determine whether they appear as a separate layer on the Map to be enabled/disabled: gis_feature_group
    • There are Many-to-Many tables linking these together (defined in models/03_gis.py)
    • There are basic Controller functions for editing these resources, however they aren't fully-exposed to users (need to type URL manually)
    • We want nice User interface for these & menus (menus for GIS need some wider cleanup work anyway)
    • 'mapping' table for feature classes - mapping web markers
  • Allow to reorder layers and select which base layer to start with
  • Explanatory text with the Views

Feeds

  • KML Export
    • Include Marker
      • From our own site when using Portal
      • From sahanafoundation.org when using an offline instance?
        • So have a setting flag in models/00_settings.py for this (or gis_config table or gis_settings table?)
    • bounds information - e.g. lat/lon min/max to go in the metadata. this improves display of KML when opened in the like of GE and other apps. not required, but does improve display
    • Polygon support (currently uses Centroid)
  • GeoRSS Export
    • Polygon support (currently uses Centroid)

  • GPX Export
    • classify types when exported to Garmin icons (e.g. hms_hospital->Medical Facility, or_office->Building) See ref1,ref2. Note, recommended to use <sym>text</sym to identify and not number. Enhancement tickets to better support this 159, 160
    • stick some extra info into <desc> - as auto GPS units what support bluetooth phones can recognise phone numbers and allow hands free calling
    • bounds information - e.g. lat/lon min/max to go in the metadata. this improves display of GPX when opened in the like of GE and other apps. not required, but does improve display
    • Polygon support (currently uses Centroid)
  • Import
    • GPX
      • Bulk Uploader needs finishing
      • Possibly add a feature that recognizes symbols for waypoints
    • GeoRSS
    • KML

Code Cleanup

  • Move GIS functions to a new modules/s3gis.py
  • DRY the gis_config parsing in controlers/gis.py (currently in 3 different places!)
    • pass a single s3.gis var through to views

IS_LOCATION Validator

Add a custom validator to modules/validators.py (or new modules/s3gis.py):

IS_LOCATION()
  • This should support the ability to select a gis_location as an admin area (i.e. we don't know the exact location, but we know the town or district)
  • This should be an AJAX auto-complete.
  • Once chosen, then the 'parent' will be set to this location
  • It should also support the ability to enter a precise Lat/Lon (or Polygon), in which case a function in the new modules/s3gis.py would calculate which admin area to set as the Parent automatically.
  • It should also populate the 4 hidden (readable=writable=False) bounding box fields used to speed up spatial queries

OpenLayers

  • Unzip KMZ layers

MGRS

Done

ToDo

  • Bug: Control is being activated when clicking on KML/GeoRSS popups!
  • Beyond Haiti: Only activate control if bounds correct (-80 < Lat < 80?)
  • A toolbar icon would be nice (Grid?)
  • Move from Layers to a new 'Controls' section

Load GIS data

tcarobruce working on this with jonathank & mettadore

CHECK OUT:

ToDo

  • admin_area_for_latlng
    • filter by bbox (once implemented)
    • then use shapely to do Point-in-Polygon on remaining geometries
  • merge wkt parse code into modules/s3gis.py
  • simplify polygon if too big for wkt field (or throw exception, to start)
    • code in modules/s3gis.py
  • don't display all admin area feature groups (> 700)
    • enabled = False

Administrative Areas

Other Data To Load

Longer Term Improvements

  • use a spatial db like PostGIS
  • bulk loading via web interface
  • use location's admin_id to give users (presumably local experts) administrative control over locations in a particular geographic area

Haiti

Note: See TracWiki for help on using the wiki.