Hi QGIS devs Recently, I was writing a symbollayer to render ellipse shapes (and also rectangles, triangles, crosses by specifying width and height). Moreover, the symbol layer allows to set all parameters (width, height, colors, rotation, outline with) from data fields, in mm or map units.
The code is contained in my github clone int the branch 'data_defined_symbollayer'. To give it a try, you can do the following: git add remote add mhugent git://github.com/mhugent/Quantum-GIS.git git checkout --track mhugent/data_defined_symbollayer The reason it's in a branch is that data defined rendering in symbol layers needed some API changes. They are quite small: - A pointer to the rendered QgsFeature* has been added to QgsSymbolV2RenderContext (such that the symbollayer has the possibility to check the data defined attribute values) - A symbollayer has the possibility to specify which attribute fields it needs for rendering (by default, QgsSymbolLayerV2::usedAttributes returns an empty set). - The symbollayer widgets receive a pointer to their vector layer. Normal symbol layer widgets don't use it, the widgets of data defined symbol layers get the available fields through that pointer. At first, I tried to achieve the data defined layer without API change by creating a new subclass of QgsFeatureRendererV2 (as discussed with Martin in Lisbon. However, it turned out this approach would need a lot of duplication to provide graduated / unique / rule based classification and to provide a seamless integration with the existing symbology(ng). What do you think? Regards, Marco -- Dr. Marco Hugentobler Sourcepole - Linux & Open Source Solutions Churerstrasse 22, CH-8808 Pfäffikon SZ, Switzerland [email protected] http://www.sourcepole.ch Technical Advisor QGIS Project Steering Committee _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
