= Use OpenLayers for web mapping interface (replace Intermap with OL) = || '''Date''' || 2008/06/20 || || '''Contact(s)''' || etj, francois, Jose, Bart || || '''Last edited''' || [[Timestamp]] || || '''Status''' || draft || || '''Assigned to release''' || to be determined || || '''Resources''' || ? || == Overview == Replace IM with a more responsive map client. === Some screenshots & suggestions === ==== geocat.ch sandbox ==== [[Image(geocat-home.png, 450)]] [[Image(geocat-popup.png, 450)]] ==== NGR ==== * http://www.nationaalgeoregister.nl/geonetwork [[Image(ngr-search.png, 450)]] [[Image(ngr-view.png, 450)]] [[Image(ngr-map.png, 450)]] ==== Geoportal in Mali (Jean Pommier) ==== [[Image(gdtmali-home.png, 450)]] [[Image(gdtmali-search.png, 450)]] [[Image(gdtmali-compare-maps.png, 450)]] ==== Dummy prototype ==== [[Image(GeoNetworkOpenLayerMapFish.png, 450)]] ==== MEDWIP ==== * http://www.emwis.net/geonetwork/ ==== GeoExt ==== [[Image(gnclient.png, 500)]] === Proposal Type === * '''Type''': GUI Change, Module Change * '''App''': !Intermap * '''Module''': === Links === * '''Documents''': [http://openlayers.org/ OpenLayers], [http://geoext.org GeoExt], [http://trac.mapfish.org/trac/mapfish MapFish], [http://ext.js/ Ext.js] * '''Email discussions''': * '''Other wiki discussions''': * http://logs.qgis.org/geonetwork/%23geonetwork.2009-09-01.log === Voting History === * No votation requested yet. ---- == Motivations == The current implementation of the map client needs an image transfer from the Intermap server every time something in the map changes.[[BR]] !OpenLayers has a quite different architecture, where many efforts has been spent in order to minimize heavy data transfers from map servers to the client. Also many map operations are ready out of the box. Removing the IM webapp in order to simplify the installation is also a nice target. The main objectives are : * add support for some Intermap missing functionnalities: * allow simple vector feature support (bbox highlight, define bbox or bounding polygon in the editor) * allow non WGS84 projection support and use proj4js to reproject vector feature when needed * using non WGS84 projection could still raise issue when user add a WMS layer from a remote service which does not support the client projection * improve : * map viewing (tiling, layer tree) * pdf printing GUI will be mainly written using javascript. It will be easier to update the layout as it will use div and css (instead of existing deeply nested table layout). A jeeves service named "home" is using XSL to read localized string for the UI. Then all the layout will be HTML and JS. == Proposal == === Catalogue search form === Search form is composed of a simple and advanced mode. Search criteria available by default are: * simple search form * full text * region (list of values) or bounding box * INSPIRE : annex I, II, III * * INSPIRE : Discovery, View, Download, Transform, Invoke, Other * INSPIRE : theme * advanced search form * title * abstract * keyword (autocompletion) * type (dataset and series (default), service (WMS, WFS)) * topic category * from time to time * catalogue * organisation * contact * group * kind (metadata (default), template) [identify user only] * Valid [identify user only] * To publish [identify user only] * For all INSPIRE parameters a config file parameter should allow to turn it on/off Autocompletion or list of values is made using GetDomain operation. === Catalogue search results === * header: * sortBy (relevance(default), popularity, title, changeDate, rating) * number of restuls per page (10 (default), 20, 50, 100) * output (small, medium, thumbnail) * Select all/none optio / Number of selected records * Export format: pdf, kml, txt, georss * Massive actions Example: [[Image(search-results-header.png)]] * Search results: * small view: * group logo * title * keyword * icon type (dataset/service) * rating widget * medium * small view + * abstract * thumbnail * icons (see NGR) [[Image(search-results-mediumout.png)]] * thumbnail * group logo * title * thumbnail [[Image(search-results-thumbnailout.png)]] Actions: * Click on title to see the metadata (popup view in tab view ? or default view, how to switch to open advanced view ?) * Mouse overlay on a result highlight the bounding box. * Double click on a result zoom to the bounding box. * Admin actions (edit/delete/duplicate/privileges) * Interactive actions (add to map, download) Config parameters : * output * export format === Map Features === One "mini-map" is used to define search criteria and higlight bounding box of search results. One "big-map" is used to make your map and display geographic data using OGC Services. ==== Common map features ==== || '''Function''' || Available in 2.2 || geocat.ch || NGR || Available || Comments || || Zoom in/out || X || X || || || default OL navigation or in map toolbar || || Zoom slider || || X || || || default OL navigation || || Panning || X || X || || || default OL navigation or in map toolbar || || Zoom to full extent || X || X || || || double click the metadata record to go to the metadata extent || ==== Mini-map features ==== || '''Function''' || Available in 2.2 || geocat.ch || NGR || Available || Comments || || Metadata Bbox higlighter || || X || || || Current view bounds is used for bbox search || || X || || ==== Big-map features ==== || '''Function''' || Available in 2.2 || geocat.ch || NGR || Available || Comments || || Get feature info || X || || X || || || || Layer tree || X || X || X || || GeoExt layer tree (add, remove, view, reorder, transparency) || || Pdf printing || X || X || X || || || || WMC || X || || X || || || || previous/next view || || || X || || || ==== Intermap feature not available in the proposal ==== || Function || Available || || || Comments || || Markers & annotation || || || || Not planned yet || === To be discussed === * Question * search form: * link to a WFS server to define region? * how to search on INSPIRE Annex ? * search results: * best way to have admin button (edit/delete/duplicate/privileges) and interactive button (add to map, download) * architecture : Which version of the lib? Use svn:external ? * search results : integrate narrow your search panel (see geocat.ch) * From where to start ? * geocat.ch : * needs to be migrated from !MapFish to !GeoExt (!MapPanel mainly - started on other project in Camptocamp). * Build CSW query from search forms https://geonetwork.svn.sourceforge.net/svnroot/geonetwork/sandbox/geocat.ch/trunk/web/geonetwork/scripts/mapfishIntegration/searchTools.js * Tocheck : !GetDomain support Required librairies : * !OpenLayers (2.8?) * !GeoExt (0.5?) * !MapFish (?) The GeoEditorViewer proposal add the !OpenLayers 2.8 and !GeoExt 0.5 libs. Related works : * CSW protocol support in !OpenLayers http://trac.openlayers.org/ticket/2133 * CSW components in !GeoExt (!GetRecords & !GetDomain operation support) http://trac.geoext.org/ticket/87 === Backwards Compatibility Issues === * JS file size for ext.js http://extjs.com/blog/2008/11/18/ext-cdn-custom-builds-compression-and-fast-performance/ * jsbuild is used to compress required JS libs. See GeoEditorViewer == Risks == == Participants == * Francois (geocat.ch) * Patrick (geocat.ch) * igrcic