= !GeoExplorer = [[TOC]] Work has started to integrate !OpenGeo's !GeoExplorer as an alternate/replacement Map Viewing Client. The new approach is to simply pull in desired functionality from [https://github.com/opengeo/gxp gxp] directly. == 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 [http://yuiblog.com/blog/2007/06/12/module-pattern/ module pattern] anyway * ease contributions from !JavaScript developers (who may be put off the Python part) * support caching * There are some [wiki:BluePrintGISGeoExplorer#GeoExplorerhaswhichMVCdoesnt cool features] available which we'd like to make use of == Links == * [http://demo.eden.sahanafoundation.org/eden/gis/geoexplorer Sahana Demo site] * [http://suite.opengeo.org/geoexplorer OpenGeo Demo site] * [http://suite.opengeo.org/docs/geoexplorer/index.html Geoexplorer Documentation] * [http://projects.opengeo.org/geoext/wiki/GeoExplorer OpenGeo Wiki] * !OpenGeo are using !GeoExplorer as part of !GeoNode: * http://geonode.org * http://dev.geonode.org/trac * These tools will be merged with !GeoExplorer: * [http://suite.opengeo.org/geoeditor/ GeoEditor] * [http://suite.opengeo.org/styler/ Styler] == How == * [https://github.com/opengeo/GeoExplorer GeoExplorer GitHub] * [https://github.com/opengeo/gxp GXP GitHub] - toolset upon which !GeoExplorer is built * [http://getsatisfaction.com/opengeo OpenGeo Community Forum] * GeoExplorer extends gxp.Viewer * Composer extends GeoExplorer (adds left 3 buttons) 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 [[BR]](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 === * How do we get Editable Features? * assume they should be WFS * How do we get Styler to open for !GeoServer layers? * Internal Feature Layers need to populate the Legend * Clustering isn't working * Localisation * get the i18n strings added to the PO files on Pootle (via Python .py? or separate process?) * text strings are sometimes still hidden in private methods not separate public variables (resolved now?) * http://www.sencha.com/learn/Tutorial:Localizing_Ext * Published maps: {{{viewer#maps/id}}} * NB web2py doesn't see the '#' * 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 === Fixed === * All pushed upstream: https://github.com/opengeo/GeoExplorer/pull/1