Thank you Vinayan.
Based on your code, I was able to make it work like this:
new_attributes = layer.pendingFields()
for j in new_attributes:
if provider.defaultValue(j).isNull():
new_attributes[j] = feature.attributeMap()[j]
else:
new_attributes[j] = provider.defaultValue(j)
And I will try to use On Fly Reprojection too.
Thanks again,
Alexandre Neto
On Wed, Feb 6, 2013 at 2:42 AM, vinayan <[email protected]> wrote:
> Hi Alexandre,
>
> I recently used provider default values in a plugin like this..
>
> provider = layer.dataProvider()
> f = QgsFeature()
>
> #On the Fly reprojection.
> if layerCRSSrsid != projectCRSSrsid:
> geom.transform(QgsCoordinateTransform(projectCRSSrsid,
> layerCRSSrsid))
>
> f.setGeometry(geom)
>
> # add attribute fields to feature
> fields = layer.pendingFields()
>
> # vector api change update
> if QGis.QGIS_VERSION_INT >= 10900:
> f.initAttributes(fields.count())
> for i in range(fields.count()):
> f.setAttribute(i,provider.defaultValue(i))
> else:
> for i in fields:
> f.addAttribute(i, provider.defaultValue(i))
>
>
>
> --
> View this message in context:
> http://osgeo-org.1560.n6.nabble.com/How-to-get-Provider-default-values-for-each-attribute-using-Python-tp5032168p5032343.html
> Sent from the Quantum GIS - Developer mailing list archive at Nabble.com.
> _______________________________________________
> Qgis-developer mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer