Vektor-Legenden in GeoExt3 FeatureGrids anzeigen

| 19. September 2016

Bislang gab es in GeoExt 3 (wie auch in älteren GeoExt-Versionen) zum Rendern von Vektorlegenden in tabellarischen Darstellungen (sogenannten Grids) die Klasse GeoExt.grid.column.Symbolizer. Im Zuge des OSGeo Codesprints der FOSS4G 2016 in Bonn ( wir berichteten) wurde diese Klasse aus diversen Gründen aus GeoExt 3 entfernt.

Dennoch können Sie weiterhin Vektorlegenden in Grids anzeigen. Mit nur wenigen Zeilen Code kann eine entsprechende Spalte mit Hilfe der GeoExt-Klasse _GeoExt.component._FeatureRenderer in der Definition des Grid-Objekts erzeugt werden:

Ext.create('Ext.grid.Panel', {
    title: 'Feature Grid',
    // bind the feature store holding the geo features
    store: aFeatureStoreInstance,
    columns: [
        // the vector legend as column in the grid
        {
            xtype: 'widgetcolumn',
            width: 40,
            widget: {
                // the FeatureRenderer alias
                xtype: 'gx_renderer'
            },
            onWidgetAttach: function(column, gxRenderer, record) {
                // update the symbolizer with the related feature
                var feature = record.getFeature();
                gxRenderer.update({
                    feature: feature,
                    symbolizers: GeoExt.component.FeatureRenderer.determineStyle(record)
                });
            }
        },
        // more column definitions here
    ]
});

featuregrid-smybol-col

featuregrid-smybol-col

Die resultierende Vektorlegende im FeatureGrid[/caption]

Ein ausfühliches Beispiel, das die Funktionalität zeigt, finden Sie hier.

Anwendungsentwickler sollten beim Upgrade auf die aktuelle GeoExt-Version darauf achten bestehende SymbolizerColumn-Verwendungen, wie oben gezeigt zu ersetzen. Bei Fragen oder Supportwünschen können Sie uns gerne kontaktieren.