メモリプロバイダーは、主にプラグインまたはサードパーティのアプリ開発者が使用することを目的としています。ディスクにデータを保存しないため、開発者は一時的なレイヤーの高速バックエンドとして使用できます。
# To avoid 'QVariant' is not defined error
from PyQt4.QtCore import *
# create layer
vl = QgsVectorLayer("Point", "temporary_points", "memory")
pr = vl.dataProvider()
# Enter editing mode
vl.startEditing()
# add fields
pr.addAttributes( [ QgsField("name", QVariant.String),
QgsField("age", QVariant.Int),
QgsField("size", QVariant.Double) ] )
# add a feature
fet = QgsFeature()
fet.setGeometry( QgsGeometry.fromPoint(QgsPoint(10,10)) )
fet.setAttributeMap( { 0 : QVariant("Johny"),
1 : QVariant(20),
2 : QVariant(0.3) } )
pr.addFeatures( [ fet ] )
# Commit changes
vl.commitChanges()