[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