Towards GeoExt 3

Supporting both OpenLayers 3 and ExtJS 6


Marc Jansen & Christian Mayer

FOSS4G 2015, Seoul, South Korea, 2015-09-18

Outline

  • Intro & Meta
  • A (short) history of GeoExt
  • So what is GeoExt 3?
    • Objectives
    • State
    • Examples & features
  • Outlook

Intro & Meta

Marc Jansen

  • Since 2007 developer & project lead @ terrestris
  • Core developer & member of PSC GeoExt
  • Core developer OpenLayers
  • Author of the German "OpenLayers" book
  • OSGeo Foundation Charter Member
  • ♥ OpenSource & GIS / Spatial

Christian Mayer

  • Software developer & architect
  • Especially GIS / SDI
  • Founder of meggsimum
  • Core developer & member of PSC GeoExt
  • OSGeo Foundation Charter Member
  • Speaker at nat. & intern. conferences
  • ♥ OpenSource & GIS / Spatial

GeoExt

  • JavaScript framework for sophisticated WebGIS
  • Based on OpenLayers and ExtJS
  • Extends ExtJS with spatial components
  • Embedding of spatial formats in ExtJS data-components
  • Rich webmapping interfaces
  • © OSGeo, OpenSource
  • First commit on Mar 25, 2009

GeoExt…

…is the marriage of ExtJS and OpenLayers

…is the child of ExtJS and OpenLayers

enhances both ExtJS and OpenLayers

A (short) history of GeoExt

GeoExt 1.x

@bitovi on twitter

GeoExt 2.0.x

GeoExt 2.0.x

  • Major improvements
    • Support for new creation syntax
    • MVC support
    • Advanced app theming
    • Improved API-Docs
    • Compatibility to Sencha's build tools (dependency resolving, …)

GeoExt 2.1.x (beta)

GeoExt 2.1.x

  • Major improvements
    • Support for two major ExtJS versions
    • MVVM support
    • Two-way-binding
    • Improved mobile / touch support
    • Responsive design

In the meantime…

OpenLayers 3

&

ExtJS 6

…were born

Sponsors

  • Bistum Eichstätt
  • Boundless
  • Bundesamt für Strahlenschutz
  • Compass Informatics Ltd
  • ISB AG
  • Landesamt für Geoinformation und Landentwicklung Baden Württemberg
  • Landplan AG
  • meggsimum
  • terrestris GmbH & Co. KG

So what is GeoExt 3?

Objectives

  • Start from scratch
  • Benefit from sencha tooling (build / packaging)
  • Benefit OpenLayers feature galore
  • Unbiased about medium (desktop / mobile)
  • Enable access of library objects (e.g. ol3)
  • More examples, improved tests and documentation

State

  • github.com/geoext/geoext3
  • > 300 commits
  • 7 contributors
  • Build and packaging
  • 82% test-coverage
  • Nice API-docs
  • Some examples
  • BSD to GPLv3
  • Universal app example
  • 0 releases

State


# Once on the commandline
sencha package repo add \
    GeoExt http://geoext.github.io/geoext3/cmd/pkgs
				

// in app.json
"requires": [
    "GeoExt"
],
				

Examples & features

Basic MapComponent example

A basic example of the map component of GeoExt 3

var olMap = new ol.Map({
    layers: [
        // …
    ],
    view: new ol.View({
        // …
    })
});

var mapComponent = Ext.create('GeoExt.component.Map', {
    map: olMap
});

OverviewComponent example

Two examples of the overview component of GeoExt 3

LayerTree with legends example

An examples showing legends in a hierarchical layer tree of GeoExt 3

Printing example (with MapFish v3)

An example showing the MapfishPrintProvider of GeoExt 3 in action

Resulting PDF of printing example

A screenshot of the generated PDF

GeoExt popups and pointerrest

GeoExt popups on the map

FeatureRenderer

GeoExt feature renderer in action

FeatureStore in ExtJS Grid

Two grids configured with a feature store and feature renderer column

MapView-form

Properties of a map view in an editable form

Outlook

Outlook / future

  • Release betas / previews
  • Develop roadmap
  • Attract more people
  • Universal application
  • Possible restructuring: GeoExt-base, -modern, -classic
  • Continuous deployment: first steps done
  • … then release it as 3.0.0

Thanks!


Questions & Remarks?


Imprint

Imprint

Authors

Marc Jansen
terrestris GmbH & Co. KG
Pützchens Chaussee 56
53227 Bonn
Germany
jansen@terrestris.de
Christian Mayer
meggsimum
Hauptstraße 165a
67125 Dannstadt-Schauernheim
Germany
chris@meggsimum.de

License

The slides of this talk are licensed under CC BY-SA

Slides (HTML), Slides (PDF), git repository