|
39 | 39 | from qgis.core import *
|
40 | 40 | from ui_frmPointDistance import Ui_Dialog
|
41 | 41 | import csv, codecs, cStringIO
|
| 42 | +import ftools_utils |
42 | 43 | from math import *
|
43 | 44 |
|
44 | 45 | class UnicodeWriter:
|
@@ -88,25 +89,26 @@ def __init__(self, iface):
|
88 | 89 | self.setWindowTitle(self.tr("Distance matrix"))
|
89 | 90 | self.progressBar.setValue(0)
|
90 | 91 | mapCanvas = self.iface.mapCanvas()
|
91 |
| - for i in range(mapCanvas.layerCount()): |
92 |
| - layer = mapCanvas.layer(i) |
93 |
| - if layer.type() == layer.VectorLayer: |
94 |
| - if layer.geometryType() == QGis.Point: |
95 |
| - self.inPoint1.addItem(layer.name()) |
96 |
| - self.inPoint2.addItem(layer.name()) |
| 92 | + layers = ftools_utils.getLayerNames( [ QGis.Point ] ) |
| 93 | + self.inPoint1.addItems(layers) |
| 94 | + self.inPoint2.addItems(layers) |
97 | 95 |
|
98 | 96 | def update1(self, inputLayer):
|
99 |
| - changedLayer = self.getVectorLayerByName(unicode(inputLayer)) |
100 |
| - changedField = self.getFieldList(changedLayer) |
| 97 | + self.inField1.clear() |
| 98 | + changedLayer = ftools_utils.getVectorLayerByName(unicode(inputLayer)) |
| 99 | + changedField = ftools_utils.getFieldList(changedLayer) |
101 | 100 | for i in changedField:
|
102 |
| - if changedField[i].type() == QVariant.Int or changedField[i].type() == QVariant.String: |
| 101 | + if changedField[i].type() == QVariant.Int or \ |
| 102 | + changedField[i].type() == QVariant.String: |
103 | 103 | self.inField1.addItem(unicode(changedField[i].name()))
|
104 | 104 |
|
105 | 105 | def update2(self, inputLayer):
|
106 |
| - changedLayer = self.getVectorLayerByName(unicode(inputLayer)) |
107 |
| - changedField = self.getFieldList(changedLayer) |
| 106 | + self.inField2.clear() |
| 107 | + changedLayer = ftools_utils.getVectorLayerByName(unicode(inputLayer)) |
| 108 | + changedField = ftools_utils.getFieldList(changedLayer) |
108 | 109 | for i in changedField:
|
109 |
| - if changedField[i].type() == QVariant.Int or changedField[i].type() == QVariant.String: |
| 110 | + if changedField[i].type() == QVariant.Int or \ |
| 111 | + changedField[i].type() == QVariant.String: |
110 | 112 | self.inField2.addItem(unicode(changedField[i].name()))
|
111 | 113 |
|
112 | 114 | def accept(self):
|
@@ -154,8 +156,8 @@ def saveFile(self):
|
154 | 156 | self.outFile.insert(filePath)
|
155 | 157 |
|
156 | 158 | def compute(self, line1, line2, field1, field2, outPath, matType, nearest, progressBar):
|
157 |
| - layer1 = self.getVectorLayerByName(line1) |
158 |
| - layer2 = self.getVectorLayerByName(line2) |
| 159 | + layer1 = ftools_utils.getVectorLayerByName(line1) |
| 160 | + layer2 = ftools_utils.getVectorLayerByName(line2) |
159 | 161 | provider1 = layer1.dataProvider()
|
160 | 162 | provider2 = layer2.dataProvider()
|
161 | 163 | allAttrs = provider1.attributeIndexes()
|
@@ -248,23 +250,3 @@ def linearMatrix(self, writer, provider1, provider2, index1, index2, nearest, di
|
248 | 250 | start = start + add
|
249 | 251 | progressBar.setValue(start)
|
250 | 252 | del writer
|
251 |
| - |
252 |
| - def getVectorLayerByName(self, myName): |
253 |
| - mc = self.iface.mapCanvas() |
254 |
| - nLayers = mc.layerCount() |
255 |
| - for l in range(nLayers): |
256 |
| - layer = mc.layer(l) |
257 |
| - if layer.name() == unicode(myName): |
258 |
| - vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name())) |
259 |
| - if vlayer.isValid(): |
260 |
| - return vlayer |
261 |
| - else: |
262 |
| - QMessageBox.information(self, self.tr("Locate Line Intersections"), self.tr("Vector layer is not valid")) |
263 |
| - |
264 |
| - def getFieldList(self, vlayer): |
265 |
| - fProvider = vlayer.dataProvider() |
266 |
| - feat = QgsFeature() |
267 |
| - allAttrs = fProvider.attributeIndexes() |
268 |
| - fProvider.select(allAttrs) |
269 |
| - myFields = fProvider.fields() |
270 |
| - return myFields |
0 commit comments