GeoExt3
Universale WebGIS Applikationen
mit OpenLayers 3 und ExtJS6
Marc Jansen & Christian Mayer
FOSSGIS 2016, Salzburg, 05.07.2016
Gliederung
- Über…
- GeoExt: Stand
- Universale Applikationen…
- … mit GeoExt
- Beispiel
- Fazit
Marc Jansen
- Seit 2007 Entwickler / Projektleiter bei terrestris
- Kernentwickler und PSC Mitglied GeoExt
- Kernentwickler OpenLayers
- Buchautor "OpenLayers"
- Sprecher & Trainer
national & international
- OSGeo Foundation Charter Member
terrestris
- terrestris.de
- OpenSource GIS aus Bonn
- Entwicklung, Projekte & Support/Schulung
- Beratung, Planung, Implementierung & Wartung
Christian Mayer
- Geoinformatiker
- Softwareentwickler & -architekt
- Kernentwickler und PSC Mitglied GeoExt
- Sprecher & Trainer
national & international
- OSGeo Foundation Charter Member
meggsimum
- meggsimum.de
- Dienstleistungen im Bereich GIS, Webmapping & GDI
- Maßgeschneiderte WebGIS-Lösungen
- Softwarekonzepte und Softwareentwicklung
- Geodaten
- Beratung und Schulung
GeoExt
- JavaScript-Framework für "Rich Web Mapping Applications"
- Basiert auf OpenLayers und ExtJS
- Erweitert ExtJS um räumliche Komponenten
- Grafische Komponenten und Daten-Paket
- OpenSource, © OSGeo
- Sei März 2009 (7,5 Jahre)
Versionen
GeoExt |
ExtJS |
OpenLayers |
1.1 |
3.x |
2.10 |
2.1 |
4.2.x / 5.1.x |
2.13.1 |
3 (master) |
6.x |
3.x |
A high-performance, feature-packed library for all your mapping
needs.
- Kompletter rewrite nach v2.x
- Mobile from start
- Unabhängig von …
- … Endgerät
- … Browser
- … Bibliothek
Zusammenführung ExtJS / Sencha Touch
- Toolkits classic & modern
- Build profiles
- Besseres Theming (fashion)
- Model-View-Controller & Model-View-ViewModel
Ext.Widget
… Ext.list.Tree
Ziel
- Eine Codebasis => multiple builds
- Weniger Reibungsverluste
- Wiederverwendung von Code
- UI weitestgehend abhängig von Endgerät
Ideally, the Universal aspect of the your application will contain
data, models, viewmodels, etc. You can also share controllers,
though, developers may need
to be creative in order to produce logic that can span
toolkits.
app.json & sencha
"builds": {
"classic": {
"toolkit": "classic",
"theme": "theme-triton"
},
"modern": {
"toolkit": "modern",
"theme": "theme-triton"
}
}
$ sencha app build modern
Profildetektion in index.html
Ext.beforeLoad = function (tags) {
var s = location.search, // the query string (ex "?foo=1&bar")
profile;
// For testing look for "?classic" or "?modern" in the URL
// to override device detection default.
if (s.match(/\bclassic\b/)) {
profile = 'classic';
} else if (s.match(/\bmodern\b/)) {
profile = 'modern';
} else {
profile = tags.desktop ? 'classic' : 'modern';
// tag.phone, tags.cordova …
}
Ext.manifest = profile; // must match a build profile name
};
Universale Applikationen
…mit GeoExt
Was bedeutet dies für GeoExt?
- Korrekte Ableitungen in eigenen Klassen
- Bsp.
GeoExt.component.Map
- Wiederverwendbar: alles außer
GeoExt.grid.column.Symbolizer
- components, data-package (models und stores), utilities & mixins
- tree-Strukturen via models
Nicht als package verwendbar
"classpath": [
"app",
"${toolkit.name}/src",
"packages/remote/GeoExt/src/component",
"packages/remote/GeoExt/src/data",
"packages/remote/GeoExt/src/mixin",
"packages/remote/GeoExt/src/util"
]
Globales "requires": [ "GeoExt" ]
entfernen
Fazit
- Großes Potential
- Anspruchsvolle Detailentwicklung (Framework / App)
- Einige unerwartete Fallstricke
- Ansprechende Ergebnisse
- Derzeit Verbesserungen finanziert (BfS)
- Mehr Kollaboration gewünscht
- Viele Ideen / wenig Zeit
- Sponsoren? Entwickler?
Impressum
Autoren
Marc Jansen
terrestris GmbH & Co. KG
Kölnstr. 99
53111 Bonn
jansen@terrestris.de
Christian Mayer
meggsimum
Hauptstraße 165a
67125 Dannstadt-Schauernheim
chris@meggsimum.de
Lizenz
Diese Folien sind unter CC BY-SA
veröffentlicht.
Vortragsfolien,
PDF-Version,
git repository