wiki:BluePrint/GIS/GeoExplorer

Version 60 (modified by Fran Boon, 11 years ago) ( diff )

--

GeoExplorer

Work has started to integrate OpenGeo's GeoExplorer as an alternate/replacement Map Viewing Client.

Why?

  • Good for Users to use consistent tools across applications
  • Good for Developers to be part of a bigger community
  • We want to rewrite to have most of the app in static JavaScript with module pattern anyway
    • ease contributions from JavaScript developers (who may be put off the Python part)
    • support caching
  • There are some cool features available which we'd like to make use of

How

Server shouldn't write out JavaScript:

  • config should be passed between client & server using JSON config objects

Feature Comparison

GeoExplorer has which MVC doesn't

  • Save personalised, bookmarkable map views (layers / viewport)
  • Browse for new WMS servers/layers
  • Google Earth 'layer'
  • Legend panel for WMS layers
  • Add/Edit WFS features
  • Style GeoServer layers
  • Dynamic Opacity setting
  • Print support more complete
    • Warning for unsupported layers (now removed?)
  • Implementation of 'group' for different layer folders (can use this for Internal/External feeds)
  • Icons in top toolbar ('north') instead of Map panel title: more screen real-estate for map & potentially space for more icons (although good to keep uncluttered if possible)

MVC has which GeoExplorer doesn't

NB It should be relatively easy to patch some of these in within Sahana (using a slightly-modified version of the existing Python code) as an interim measure to getting them added to the GeoExplorer JavaScript libraries
(crossed-out lines here have been implemented, some like that).

  • WFS Layers
  • Extra Google layers (MapMaker)
  • Yahoo layers
  • WMS Browser (do we need this with the multi-server browser?)
  • Overview map
  • Internal feature layers
  • KML/GeoRSS/GPX layers
  • Extra OSM layers (CycleMap, Hillshading, Taiwan, Custom)
  • Potlatch2 integration
  • HTML5 GeoLocation support
  • GeoNames Search
  • Mouse Pointer: Lat/Lon & MGRS
  • Configurability
    • can we embed a map into a page?
      • should be possible by using an Ext.Panel:
        config[portalConfig]: ``Ext.Panel`` if it has a ``renderTo`` property, or an ``Ext.Viewport`` otherwise
        
    • can we have a popup window for the LocationSelector?
      • Switching to Ext.Window isn't easy. Overriding initPortal in Sahana.js means we lose the toolbar/layerContainer/legendContainer
    • can each button have an enabled option?

Issues with GeoExplorer

Outstanding

  • Internal Feature Layers need to populate the Legend
  • Clustering isn't working
  • Localisation
  • Published maps: geoexplorer/viewer.html#id
    • Doesn't appear to read the config at all!
    • Viewer sends about to geoexplorer/about.html
  • How to edit Title/Abstract(Description)/Contact when saving a map?
  • How to save a WMS Server when saving a Map? ("source":"source78")
  • Not clear when saving whether this is a New map or an Update
    • Should have a 'Save As' option
  • scaleLinePanel ugly: remove the Scale Chooser?
  • Layer-Switcher in Embedded View not as nice...why different UI (just that we have less space not a reason since we can collapse mini)
  • HTML5 geoLocation isn't always reliable (sometimes screen just flashes & the viewport doesn't go to correct location)
  • Rewrite Internal Feature Layers:
    • Enable dynamic loading (load via AJAX instead of writing out in page. => Can refresh on a timer to get auto-updated without downloading the basemap again)
    • Parse config from /eden/gis/layer_feature.json
    • Enable dynamic opacity setting
  • Rewrite KML/GeoRSS/GPX feeds:
    • Parse config from /eden/gis/layer_kml.json
      • Single Store for all layers. (No need to support pulling config from multiple Sahana's. Also makes it easier for the caching/unzipping)
      • Future: Make it easy to Add new Feeds within GeoExplorer via /eden/gis/layer_kml/create.json
    • Caching / unzipping of KMZs means that we don't just want to read the config but also to initiate the server-side processes for this functionality

Changed

Local to Sahana:

  • OSM uses TMSSource.js to allow displaying across the dateline [gxp/loader.js]
  • Base layers above Overlays [GeoExplorer.js]
    • NB if try to //expanded: true, then get weird effects with 1 baselayer appearing on load & a different one when the Base Layers folder is opened
  • Composer.js showEmbedWindow shows wrong link: geoexplorer/viewer.html (can't redirect as web2py doesn't see the '#')

Fixed

Can go upstream: https://github.com/opengeo/GeoExplorer/pull/1

  • Ext 3.0.0 -> 3.3.1 (Test they work ok with 3.0.0 too):
    • header: false (westPanel) [GeoExplorer.js]
  • OpenLayers 2.9 -> 2.10
    • Can remove the 'Patch the SphericalMercator layer' from the top of GeoExplorer.js
  • GeoExt - >Trunk

GIS BluePrints

Note: See TracWiki for help on using the wiki.