LayerIteratorTest.py
| 1 |
from PyQt4.QtCore import * |
|---|---|
| 2 |
from PyQt4.QtGui import * |
| 3 |
from qgis.core import * |
| 4 |
from qgis.gui import * |
| 5 |
from qgis.utils import * |
| 6 |
from qgis.analysis import * |
| 7 |
from qgis.networkanalysis import * |
| 8 |
import sys |
| 9 |
|
| 10 |
def run_script(iface): |
| 11 |
print sys.version
|
| 12 |
|
| 13 |
layer = iface.activeLayer() |
| 14 |
lid = layer.getLayerID() |
| 15 |
print "Layer: %s" % lid |
| 16 |
lct = layer.featureCount() |
| 17 |
print "Features: %d" % lct |
| 18 |
prov = layer.dataProvider() |
| 19 |
feat = QgsFeature() |
| 20 |
attr = prov.attributeIndexes() |
| 21 |
amap = prov.fieldNameMap() |
| 22 |
imap = {v:k for k, v in amap.items()}
|
| 23 |
|
| 24 |
for (k,attr) in imap.iteritems(): |
| 25 |
print "Attribute %d: %s" % (k,imap[k]) |
| 26 |
prov.select(attr) |
| 27 |
maxfeat = 10
|
| 28 |
curfeat = 0
|
| 29 |
rad = 500
|
| 30 |
field = "COVERAGE"
|
| 31 |
fix = prov.fieldNameIndex(field) |
| 32 |
while prov.nextFeature(feat):
|
| 33 |
curfeat += 1
|
| 34 |
if curfeat == maxfeat:
|
| 35 |
break
|
| 36 |
geom = feat.geometry() |
| 37 |
cent = geom.centroid().asPoint() |
| 38 |
x = cent.x() |
| 39 |
y = cent.y() |
| 40 |
rect = QgsRectangle(x-rad,y-rad,x+rad,y+rad) |
| 41 |
#freq = QgsFeatureRequest().setFilterRect(rect)
|
| 42 |
#wind = layer.getFeatures(freq)
|
| 43 |
layer = iface.activeLayer() |
| 44 |
wind = iface.activeLayer().getFeatures(QgsFeatureRequest().setFilterRect(rect)) |
| 45 |
total = 0
|
| 46 |
while wind.nextFeature(wfeat):
|
| 47 |
attrs = wfeat.attributeMap() |
| 48 |
total += attrs[fix] |
| 49 |
print "Total in window: %d" % total |
| 50 |
## print "%d, %d" % (x,y)
|
| 51 |
|
| 52 |
|
| 53 |
## print type(layer)
|
| 54 |
## print type(geom)
|
| 55 |
## print str(geom)
|
| 56 |
## print "Feature ID %d@: "% feat.id()
|
| 57 |
## if geom.type() == QGis.Polygon:
|
| 58 |
## x = geom.asPolygon()
|
| 59 |
## numPts = 0
|
| 60 |
## for ring in x:
|
| 61 |
## numPts += len(ring)
|
| 62 |
## print "Polygon: %d rings with %d points" % (len(x), numPts)
|
| 63 |
## attrs = feat.attributeMap()
|
| 64 |
## for (k,attr) in attrs.iteritems():
|
| 65 |
## print "%d: %s" % (k, attr.toString())
|