[QGIS Commit] r15326 -
docs/trunk/english_us/developer_cookbook/source
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Mar 3 17:21:09 EST 2011
Author: wonder
Date: 2011-03-03 14:21:09 -0800 (Thu, 03 Mar 2011)
New Revision: 15326
Modified:
docs/trunk/english_us/developer_cookbook/source/loadlayer.rst
docs/trunk/english_us/developer_cookbook/source/vector.rst
Log:
How to load MySQL layer using OGR, using graduated symbol renderer from old symbology.
Contributed by German Carillo (#3536)
Modified: docs/trunk/english_us/developer_cookbook/source/loadlayer.rst
===================================================================
--- docs/trunk/english_us/developer_cookbook/source/loadlayer.rst 2011-03-03 20:37:51 UTC (rev 15325)
+++ docs/trunk/english_us/developer_cookbook/source/loadlayer.rst 2011-03-03 22:21:09 UTC (rev 15326)
@@ -55,7 +55,12 @@
vlayer = QgsVectorLayer(uri.uri(), 'Towns', 'spatialite')
+* MySQL WKB-based geometries, through OGR - data source is the connection string to the table::
+
+ uri = "MySQL:dbname,host=localhost,port=3306,user=root,password=xxx|layername=my_table"
+ vlayer = QgsVectorLayer( uri, "my_table", "ogr" )
+
Raster Layers
-------------
Modified: docs/trunk/english_us/developer_cookbook/source/vector.rst
===================================================================
--- docs/trunk/english_us/developer_cookbook/source/vector.rst 2011-03-03 20:37:51 UTC (rev 15325)
+++ docs/trunk/english_us/developer_cookbook/source/vector.rst 2011-03-03 22:21:09 UTC (rev 15326)
@@ -575,7 +575,7 @@
* single symbol renderer (:class:`QgsSingleSymbolRenderer`) --- all features are rendererd with the same symbol.
* unique value renderer (:class:`QgsUniqueValueRenderer`) --- symbol for each feature is choosen from attribute value.
-* graduated symbol renderer (:class:`QgsGraduatedSymbolRenderer`)
+* graduated symbol renderer (:class:`QgsGraduatedSymbolRenderer`) --- a symbol is applied to a subgroup (class) of features, which is calculated on a numeric field
* continuous color renderer (:class:`QgsContinuousSymbolRenderer`)
How to create a point symbol::
@@ -624,5 +624,35 @@
Create graduated symbol renderer::
- TODO
+ # Set the numeric field and the number of classes to be generated
+ fieldName = "My_Field"
+ numberOfClasses = 5
+
+ # Get the field index based on the field name
+ fieldIndex = layer.fieldNameIndex(fieldName)
+ # Create the renderer object to be associated to the layer later
+ renderer = QgsGraduatedSymbolRenderer( layer.geometryType() )
+
+ # Here you may choose the renderer mode from EqualInterval/Quantile/Empty
+ renderer.setMode( QgsGraduatedSymbolRenderer.EqualInterval )
+
+ # Define classes (lower and upper value as well as a label for each class)
+ provider = layer.dataProvider()
+ minimum = provider.minimumValue( fieldIndex ).toDouble()[ 0 ]
+ maximum = provider.maximumValue( fieldIndex ).toDouble()[ 0 ]
+
+ for i in range( numberOfClasses ):
+ # Switch if attribute is int or double
+ lower = ('%.*f' % (2, minimum + ( maximum - minimum ) / numberOfClasses * i ) )
+ upper = ('%.*f' % (2, minimum + ( maximum - minimum ) / numberOfClasses * ( i + 1 ) ) )
+ label = "%s - %s" % (lower, upper)
+ color = QColor(255*i/numberOfClasses, 0, 255-255*i/numberOfClasses)
+ sym = QgsSymbol( layer.geometryType(), lower, upper, label, color )
+ renderer.addSymbol( sym )
+
+ # Set the field index to classify and set the created renderer object to the layer
+ renderer.setClassificationField( fieldIndex )
+
+ layer.setRenderer( renderer )
+
More information about the QGIS-commit
mailing list