[QGIS Commit] r10080 - in trunk/qgis/python/plugins/fTools: . tools
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun Feb 1 10:44:02 EST 2009
Author: jef
Date: 2009-02-01 10:44:02 -0500 (Sun, 01 Feb 2009)
New Revision: 10080
Modified:
trunk/qgis/python/plugins/fTools/__init__.py
trunk/qgis/python/plugins/fTools/doAbout.py
trunk/qgis/python/plugins/fTools/fTools.py
trunk/qgis/python/plugins/fTools/ftools_help.xml
trunk/qgis/python/plugins/fTools/ftools_help.xsl
trunk/qgis/python/plugins/fTools/tools/doDefineProj.py
trunk/qgis/python/plugins/fTools/tools/doGeometry.py
trunk/qgis/python/plugins/fTools/tools/doIntersectLines.py
trunk/qgis/python/plugins/fTools/tools/doJoinAttributes.py
trunk/qgis/python/plugins/fTools/tools/doMeanCoords.py
trunk/qgis/python/plugins/fTools/tools/doPointDistance.py
trunk/qgis/python/plugins/fTools/tools/doPointsInPolygon.py
trunk/qgis/python/plugins/fTools/tools/doRandPoints.py
trunk/qgis/python/plugins/fTools/tools/doRandom.py
trunk/qgis/python/plugins/fTools/tools/doReProject.py
trunk/qgis/python/plugins/fTools/tools/doRegPoints.py
trunk/qgis/python/plugins/fTools/tools/doSelectByLocation.py
trunk/qgis/python/plugins/fTools/tools/doSpatialJoin.py
trunk/qgis/python/plugins/fTools/tools/doSubsetSelect.py
trunk/qgis/python/plugins/fTools/tools/doSumLines.py
trunk/qgis/python/plugins/fTools/tools/doVectorGrid.py
trunk/qgis/python/plugins/fTools/tools/doVectorSplit.py
trunk/qgis/python/plugins/fTools/tools/doVisual.py
trunk/qgis/python/plugins/fTools/tools/frmReProject.py
trunk/qgis/python/plugins/fTools/tools/frmReProject.ui
Log:
cleanup line endings and some typos in fTools
Modified: trunk/qgis/python/plugins/fTools/__init__.py
===================================================================
--- trunk/qgis/python/plugins/fTools/__init__.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/__init__.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -14,18 +14,18 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-def name():
- return "fTools"
-
-def description():
- return "Tools for vector data analysis and management"
-
-def version():
+def name():
+ return "fTools"
+
+def description():
+ return "Tools for vector data analysis and management"
+
+def version():
return "0.5.3"
def qgisMinimumVersion():
- return "1.0.0"
-
+ return "1.0.0"
+
def classFactory( iface ):
- from fTools import fToolsPlugin
- return fToolsPlugin( iface )
+ from fTools import fToolsPlugin
+ return fToolsPlugin( iface )
Modified: trunk/qgis/python/plugins/fTools/doAbout.py
===================================================================
--- trunk/qgis/python/plugins/fTools/doAbout.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/doAbout.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -14,15 +14,15 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-import webbrowser, os
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+import webbrowser, os
from frmAbout import Ui_Dialog
-import resources
+import resources
currentPath = os.path.dirname(__file__)
-
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
Modified: trunk/qgis/python/plugins/fTools/fTools.py
===================================================================
--- trunk/qgis/python/plugins/fTools/fTools.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/fTools.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -30,11 +30,11 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import resources
-from qgis.core import *
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
import resources
+from qgis.core import *
+import resources
import os.path, sys
# Set up current path, so that we know where to look for mudules
currentPath = os.path.dirname( __file__ )
@@ -46,7 +46,7 @@
import doIntersectLines, doJoinAttributes, doSelectByLocation, doVectorSplit, doMeanCoords
import doPointDistance, doPointsInPolygon, doRandom, doRandPoints, doRegPoints, doDefineProj
import doReProject, doSpatialJoin, doSubsetSelect, doSumLines, doVectorGrid, doAbout
-
+
class fToolsPlugin:
def __init__( self,iface ):
self.iface = iface
@@ -184,7 +184,7 @@
menuBar = self.iface.mainWindow().menuBar()
actions = menuBar.actions()
helpAction = actions[ len( actions ) - 1 ]
- menuBar.insertMenu( helpAction, self.menu )
+ menuBar.insertMenu( helpAction, self.menu )
QObject.connect( self.distMatrix, SIGNAL("triggered()"), self.dodistMatrix )
QObject.connect( self.sumLines, SIGNAL("triggered()"), self.dosumLines )
@@ -306,19 +306,19 @@
def dosumLines(self):
d = doSumLines.Dialog(self.iface)
d.exec_()
-
+
def dopointsPoly( self ):
d = doPointsInPolygon.Dialog( self.iface )
d.exec_()
-
+
def dorandSel( self ):
d = doRandom.Dialog( self.iface )
d.exec_()
-
+
def dorandSub( self ):
d = doSubsetSelect.Dialog( self.iface )
d.exec_()
-
+
def dorandPoints( self ):
d = doRandPoints.Dialog( self.iface )
d.exec_()
Modified: trunk/qgis/python/plugins/fTools/ftools_help.xml
===================================================================
--- trunk/qgis/python/plugins/fTools/ftools_help.xml 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/ftools_help.xml 2009-02-01 15:44:02 UTC (rev 10080)
@@ -3,291 +3,291 @@
<functions>
<analysis>
<ftools_function>
- <name>Distance matrix</name>
- <description>Measure distances between two point layers, and output results as a) Square distance matrix, b) Linear distance matrix, or c) Summary of distances. Can limit distances to the k nearest features.</description>
+ <name>Distance matrix</name>
+ <description>Measure distances between two point layers, and output results as a) Square distance matrix, b) Linear distance matrix, or c) Summary of distances. Can limit distances to the k nearest features.</description>
<image>icons/gis/matrix.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Sum line lengths</name>
- <description>Calculate the total sum of line lengths for each polygon of a polygon vector layer.</description>
+ <name>Sum line lengths</name>
+ <description>Calculate the total sum of line lengths for each polygon of a polygon vector layer.</description>
<image>icons/gis/sum_lines.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Points in polygon</name>
- <description>Count the number of points that occur in each polygon of an input polygon vector layer.</description>
+ <name>Points in polygon</name>
+ <description>Count the number of points that occur in each polygon of an input polygon vector layer.</description>
<image>icons/gis/sum_points.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Basic statistics</name>
- <description>Compute basic statistics (mean, std dev, N, sum, CV) on an input field.</description>
+ <name>Basic statistics</name>
+ <description>Compute basic statistics (mean, std dev, N, sum, CV) on an input field.</description>
<image>icons/gis/basic_statistics.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>List unique values</name>
- <description>List all unique values in an input vector layer field.</description>
+ <name>List unique values</name>
+ <description>List all unique values in an input vector layer field.</description>
<image>icons/gis/unique.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Nearest neighbour analysis</name>
- <description>Compute nearest neighbour statistics to assess the level of clustering in a point vector layer.</description>
+ <name>Nearest neighbour analysis</name>
+ <description>Compute nearest neighbour statistics to assess the level of clustering in a point vector layer.</description>
<image>icons/gis/neighbour.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Mean coordinate(s)</name>
- <description>Compute either the normal or weighted mean center of an entire vector layer, or multiple features based on a unique ID field.</description>
+ <name>Mean coordinate(s)</name>
+ <description>Compute either the normal or weighted mean center of an entire vector layer, or multiple features based on a unique ID field.</description>
<image>icons/gis/mean.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Line intersection</name>
- <description>Locate intersections between lines, and output results as a point shapefile. Useful for locating road or stream intersections, ignores line intersections with length > 0.</description>
+ <name>Line intersection</name>
+ <description>Locate intersections between lines, and output results as a point shapefile. Useful for locating road or stream intersections, ignores line intersections with length > 0.</description>
<image>icons/gis/intersections.png</image>
- <category>Analysis Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Analysis Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
</analysis>
<sampling>
<ftools_function>
- <name>Random selection</name>
- <description>Randomly select n number of features, or n percentage of features from an input vector layer.</description>
+ <name>Random selection</name>
+ <description>Randomly select n number of features, or n percentage of features from an input vector layer.</description>
<image>icons/gis/random_selection.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Random selection within subsets</name>
- <description>Randomly select features wihtin subsets of a vector layer based on a unique ID field.</description>
+ <name>Random selection within subsets</name>
+ <description>Randomly select features wihtin subsets of a vector layer based on a unique ID field.</description>
<image>icons/gis/sub_selection.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Random points</name>
- <description>Generate pseudo-random points over a given input layer (raster or vector) and export them as a point shapefile.</description>
+ <name>Random points</name>
+ <description>Generate pseudo-random points over a given input layer (raster or vector) and export them as a point shapefile.</description>
<image>icons/gis/random_points.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
- </ftools_function>
-
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
+ </ftools_function>
+
<ftools_function>
- <name>Regular points</name>
- <description>Generate a regular grid of points over a specified region and export them as a point shapefile.</description>
+ <name>Regular points</name>
+ <description>Generate a regular grid of points over a specified region and export them as a point shapefile.</description>
<image>icons/gis/regular_points.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Vector grid</name>
- <description>Generate a line or polygon vector grid based on user specified grid spacing.</description>
+ <name>Vector grid</name>
+ <description>Generate a line or polygon vector grid based on user specified grid spacing.</description>
<image>icons/gis/vector_grid.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Select by location</name>
- <description>Select features based on their location relative to another layer to form a new selection, or add or subtract from the current selection.</description>
+ <name>Select by location</name>
+ <description>Select features based on their location relative to another layer to form a new selection, or add or subtract from the current selection.</description>
<image>icons/gis/select_location.png</image>
- <category>Sampling Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Sampling Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
</sampling>
<geoprocessing>
<ftools_function>
- <name>Convex hulls</name>
- <description>Create minimum convex hull(s) (polygons) for an entire input layer, or based on a unique ID field.</description>
+ <name>Convex hulls</name>
+ <description>Create minimum convex hull(s) (polygons) for an entire input layer, or based on a unique ID field.</description>
<image>icons/gis/convex_hull.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
- </ftools_function>
-
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
+ </ftools_function>
+
<ftools_function>
- <name>Buffer(s)</name>
- <description>Create buffer(s) around features based on specified distance, or distance field.</description>
+ <name>Buffer(s)</name>
+ <description>Create buffer(s) around features based on specified distance, or distance field.</description>
<image>icons/gis/buffer.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Intersect</name>
- <description>Overlay vector layers such that output contains those areas where both layers intersect.</description>
+ <name>Intersect</name>
+ <description>Overlay vector layers such that output contains those areas where both layers intersect.</description>
<image>icons/gis/intersect.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Union</name>
- <description>Overlay vector layers such that output contains all intersecting and non-intersecting areas of input layers.</description>
+ <name>Union</name>
+ <description>Overlay vector layers such that output contains all intersecting and non-intersecting areas of input layers.</description>
<image>icons/gis/union.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Symetrical difference</name>
- <description>Overlay vector layers such that output contains those areas of the input and difference layers that do not intersect.</description>
+ <name>Symetrical difference</name>
+ <description>Overlay vector layers such that output contains those areas of the input and difference layers that do not intersect.</description>
<image>icons/gis/sym_difference.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Clip</name>
- <description>Overlay vector layers such that output contains those areas of the input layer that intersect the clip layer.</description>
+ <name>Clip</name>
+ <description>Overlay vector layers such that output contains those areas of the input layer that intersect the clip layer.</description>
<image>icons/gis/clip.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Difference</name>
- <description>Overlay vector layers such that output contains those areas of the input layer that do not intersect the clip layer.</description>
+ <name>Difference</name>
+ <description>Overlay vector layers such that output contains those areas of the input layer that do not intersect the clip layer.</description>
<image>icons/gis/difference.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
-
+
<ftools_function>
- <name>Dissolve</name>
- <description>Merge features based on input field. All features with indentical input values are combined to form one single feature.</description>
+ <name>Dissolve</name>
+ <description>Merge features based on input field. All features with indentical input values are combined to form one single feature.</description>
<image>icons/gis/dissolve.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
- </ftools_function>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
+ </ftools_function>
</geoprocessing>
<geometry>
<ftools_function>
- <name>Check geometry validity</name>
- <description>Check polygon geometries for self-intersections, closed-holes and polygons, and correct node ordering.</description>
+ <name>Check geometry validity</name>
+ <description>Check polygon geometries for self-intersections, closed-holes and polygons, and correct node ordering.</description>
<image>icons/gis/check_geometry.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Export/Add geometry values</name>
- <description>Add vector layer geometry info to point (XCOORD, YCOORD), line (LENGTH), or polygon (AREA, PERIMETER) layer.</description>
+ <name>Export/Add geometry values</name>
+ <description>Add vector layer geometry info to point (XCOORD, YCOORD), line (LENGTH), or polygon (AREA, PERIMETER) layer.</description>
<image>icons/gis/export_geometry.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Polygon centroids</name>
- <description>Calculate the true centroids, or 'center of mass' for each polygon in an input polygon layer.</description>
+ <name>Polygon centroids</name>
+ <description>Calculate the true centroids, or 'center of mass' for each polygon in an input polygon layer.</description>
<image>icons/gis/centroids.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Simplify geometries</name>
- <description>Simplify (generalise) line or polygon vector layers using (a modified) Douglas-Peucker algorithm.</description>
+ <name>Simplify geometries</name>
+ <description>Simplify (generalise) line or polygon vector layers using (a modified) Douglas-Peucker algorithm.</description>
<image>icons/gis/simplify.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Multipart to singleparts</name>
- <description>Convert multipart features to multiple singlepart features. Creates simple polygons and lines.</description>
+ <name>Multipart to singleparts</name>
+ <description>Convert multipart features to multiple singlepart features. Creates simple polygons and lines.</description>
<image>icons/gis/multi_to_single.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Singleparts to multipart</name>
- <description>Merge multiple features to a single multipart feature based on a unique ID field.</description>
+ <name>Singleparts to multipart</name>
+ <description>Merge multiple features to a single multipart feature based on a unique ID field.</description>
<image>icons/gis/single_to_multi.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Polygons to lines</name>
- <description>Convert polygon features to line features. Multipart polygons are converted to multiple singlepart lines.</description>
+ <name>Polygons to lines</name>
+ <description>Convert polygon features to line features. Multipart polygons are converted to multiple singlepart lines.</description>
<image>icons/gis/to_lines.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Extract nodes</name>
- <description>Extract nodes from line and polygon vector layers and output them as points.</description>
+ <name>Extract nodes</name>
+ <description>Extract nodes from line and polygon vector layers and output them as points.</description>
<image>icons/gis/extract_nodes.png</image>
- <category>Geometry Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geometry Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
</geometry>
<management>
<ftools_function>
- <name>Export to new projection</name>
- <description>Based on input CRS, project features to new CRS and export as new shapefile.</description>
+ <name>Export to new projection</name>
+ <description>Based on input CRS, project features to new CRS and export as new shapefile.</description>
<image>icons/gis/export_projection.png</image>
- <category>Data Management Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Data Management Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Define current projection</name>
- <description>Specify the CRS for shapefiles whose CRS has not been defined.</description>
+ <name>Define current projection</name>
+ <description>Specify the CRS for shapefiles whose CRS has not been defined.</description>
<image>icons/gis/define_projection.png</image>
- <category>Data Management Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
- </ftools_function>
-
+ <category>Data Management Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
+ </ftools_function>
+
<ftools_function>
- <name>Join attributes</name>
+ <name>Join attributes</name>
<description>Join additional attributes to vector layer attribute table and output results to a new shapefile. Additional attributes can be from a vector layer or stand-alone dbf table.</description>
<image>icons/gis/join_attributes.png</image>
- <category>Data Management Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
- </ftools_function>
-
+ <category>Data Management Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
+ </ftools_function>
+
<ftools_function>
- <name>Join attributes by location</name>
- <description>Join additional attributes to vector layer based on spatial relationship. Attributes from one vector layer are appended to the attribute table of another layer and exported as a shapefile </description>
+ <name>Join attributes by location</name>
+ <description>Join additional attributes to vector layer based on spatial relationship. Attributes from one vector layer are appended to the attribute table of another layer and exported as a shapefile </description>
<image>icons/gis/join_location.png</image>
- <category>Data Management Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Data Management Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
<ftools_function>
- <name>Vector split</name>
- <description>Split input vector layer into multiple separate vector layers based on input field.</description>
+ <name>Vector split</name>
+ <description>Split input vector layer into multiple separate vector layers based on input field.</description>
<image>icons/gis/split_layer.png</image>
- <category>Geoprocessing Tools</category>
- <long_description>Inputs, parameters, and additional information to be added</long_description>
+ <category>Geoprocessing Tools</category>
+ <long_description>Inputs, parameters, and additional information to be added</long_description>
</ftools_function>
</management>
</functions>
Modified: trunk/qgis/python/plugins/fTools/ftools_help.xsl
===================================================================
--- trunk/qgis/python/plugins/fTools/ftools_help.xsl 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/ftools_help.xsl 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/functions">
-
-<html>
-<head>
-<title>fTools - Help</title>
-<script language="JavaScript">
- function show_hide(id, show)
- {
- if (el = document.getElementById(id))
- {
- if (null==show) show = el.style.display=='none';
- el.style.display = (show ? '' : 'none');
- }
+
+<html>
+<head>
+<title>fTools - Help</title>
+<script language="JavaScript">
+ function show_hide(id, show)
+ {
+ if (el = document.getElementById(id))
+ {
+ if (null==show) show = el.style.display=='none';
+ el.style.display = (show ? '' : 'none');
+ }
}
function hide(id)
@@ -21,158 +21,158 @@
{
el.style.display = 'none'
}
- }
-
+ }
+
</script>
<style>
-#function {
- float:center;
- background-color: white;
- clear:both;
- display:block;
- padding:0 0 0.5em;
- margin:1em;
-}
-
-#head {
- background-color: white;
- border-bottom-width:0;
- color: black;
- display:block;
- font-size:150%;
- font-weight:bold;
- margin:0;
- padding:0.3em 1em;
-}
-
-#description{
- display: block;
+#function {
+ float:center;
+ background-color: white;
+ clear:both;
+ display:block;
+ padding:0 0 0.5em;
+ margin:1em;
+}
+
+#head {
+ background-color: white;
+ border-bottom-width:0;
+ color: black;
+ display:block;
+ font-size:150%;
+ font-weight:bold;
+ margin:0;
+ padding:0.3em 1em;
+}
+
+#description{
+ display: block;
float:left;
- width: auto;
- margin:0;
- text-align: left;
- padding:0.2em 0.5em 0.4em;
- color: black;
- font-size:100%;
- font-weight:normal;
- }
-
-#category, #image, #long_description{
- font-size: 80%;
- padding: 0em 0em 0em 1em;
+ width: auto;
+ margin:0;
+ text-align: left;
+ padding:0.2em 0.5em 0.4em;
+ color: black;
+ font-size:100%;
+ font-weight:normal;
}
-</style>
-<style type="text/css">
-#analysis, #sampling, #geoprocessing, #management, #table, #home{
- background-color: white;
- text-align: left;
- font-size: 9pt;
+
+#category, #image, #long_description{
+ font-size: 80%;
+ padding: 0em 0em 0em 1em;
+ }
+</style>
+<style type="text/css">
+#analysis, #sampling, #geoprocessing, #management, #table, #home{
+ background-color: white;
+ text-align: left;
+ font-size: 9pt;
}
#leftcontainer {
- float: left;
- position: relative;
+ float: left;
+ position: relative;
width: 300px;
- height: auto;
- margin-left: auto;
- margin-right: auto;
- text-align: left;
- overflow: hidden;
- padding-left: 0px;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: left;
+ overflow: hidden;
+ padding-left: 0px;
padding-top: 0px;
background-color: white;
}
-#pagecontainer {
- position: relative;
+#pagecontainer {
+ position: relative;
width: auto;
- height: auto;
- margin-left: auto;
- margin-right: auto;
- text-align: left;
- overflow: hidden;
- padding-left: 0px;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: left;
+ overflow: hidden;
+ padding-left: 0px;
padding-top: 0px;
background-color: white;
}
-#navcontainer {
- float: left;
- position: relative;
+#navcontainer {
+ float: left;
+ position: relative;
width: auto;
- height: 190px;
- margin-left: auto;
- margin-right: auto;
- text-align: left;
- overflow: hidden;
- padding-left: 0px;
+ height: 190px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: left;
+ overflow: hidden;
+ padding-left: 0px;
padding-top: 0px;
background-color: white;
}
#logocontainer {
- float: left;
- position: relative;
+ float: left;
+ position: relative;
width: auto;
- height: 190px;
- margin-left: auto;
- margin-right: auto;
- text-align: left;
- overflow: hidden;
- padding-left: 15px;
+ height: 190px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: left;
+ overflow: hidden;
+ padding-left: 15px;
padding-top: 0px;
background-color: white;
}
-#contentcontainer {
- position: relative;
- float: left;
- width: 500px;
- height: auto;
- margin-left: auto;
- margin-right: auto;
- color: #222222;
- text-align: left;
- font-size: 9pt;
- overflow: auto;
- background-color: white;
- padding-left: 10px;
- padding-right: 10px;
+#contentcontainer {
+ position: relative;
+ float: left;
+ width: 500px;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto;
+ color: #222222;
+ text-align: left;
+ font-size: 9pt;
+ overflow: auto;
+ background-color: white;
+ padding-left: 10px;
+ padding-right: 10px;
}
-p.navbuttons a {
- color: #222222;
- text-decoration: none;
- background-color: none;
- display: block;
- padding: 3px 0px 3px 1.5px;
- width: 100%;
- border-top: none;
- border-right: none;
- border-bottom: none;
- border-left: none;
- background-repeat: no-repeat;
- font-size: 12pt;
-}
-
-p.navbuttons a:hover, p.navbuttons a:active {
- background-color: gray;
- background-repeat: no-repeat;
+p.navbuttons a {
+ color: #222222;
+ text-decoration: none;
+ background-color: none;
+ display: block;
+ padding: 3px 0px 3px 1.5px;
+ width: 100%;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
+ border-left: none;
+ background-repeat: no-repeat;
+ font-size: 12pt;
+}
+
+p.navbuttons a:hover, p.navbuttons a:active {
+ background-color: gray;
+ background-repeat: no-repeat;
color: white;
-
-</style>
-</head>
-
+
+</style>
+</head>
+
<body>
<div id="pagecontainer">
<div id="leftcontainer">
<div id="logocontainer">
<img src="icons/ftoolslogo.png" align="left"/>
- </div>
- <div id="navcontainer">
+ </div>
+ <div id="navcontainer">
<p class="navbuttons">
<a href="javascript:show_hide('home', 'show'); javascript:hide('analysis'); javascript:hide('sampling');
javascript:hide('geoprocessing'); javascript:hide('table'); javascript:hide('new');
- javascript:hide('management')">Home</a>
+ javascript:hide('management')">Home</a>
<a href="javascript:hide('home'); javascript:show_hide('analysis', 'show'); javascript:hide('sampling');
javascript:hide('geoprocessing'); javascript:hide('table'); javascript:hide('new');
javascript:hide('management')">Analysis Tools</a>
@@ -190,10 +190,10 @@
javascript:show_hide('management', 'show')">Data Management Tools</a>
<a href="javascript:show_hide('new', 'show'); javascript:hide('analysis'); javascript:hide('sampling');
javascript:hide('geoprocessing'); javascript:hide('table');
- javascript:hide('management'); javascript:hide('home')">What's New</a>
- </p>
+ javascript:hide('management'); javascript:hide('home')">What's New</a>
+ </p>
</div>
- </div>
+ </div>
<div id="contentcontainer">
<div id="home" style="display:show" class="content-box">
<h1>fTools help</h1>
@@ -213,119 +213,119 @@
to report a bug, make suggestions for improving fTools, or have a question about
the tools, please email me: carson.farmer at gmail.com</p>
<p>I hope you enjoy,</p><p>Carson Farmer</p>
- </div>
+ </div>
<div id="analysis" style="display:none" class="content-box">
- <h1>Analysis Tools</h1>
- <xsl:for-each select="/functions/analysis/ftools_function" >
- <div id="function">
+ <h1>Analysis Tools</h1>
+ <xsl:for-each select="/functions/analysis/ftools_function" >
+ <div id="function">
<div id="head">
- <xsl:element name="img">
- <xsl:attribute name="src">
- <xsl:value-of select="image" />
- </xsl:attribute>
+ <xsl:element name="img">
+ <xsl:attribute name="src">
+ <xsl:value-of select="image" />
+ </xsl:attribute>
</xsl:element>
:
- <xsl:value-of select="name" />
- </div>
- <div id="description">
+ <xsl:value-of select="name" />
+ </div>
+ <div id="description">
<xsl:value-of select="description" />
</div>
<div id="long_description">
<xsl:value-of select="long_description" />
- </div>
- </div>
+ </div>
+ </div>
</xsl:for-each>
</div>
<div id="sampling" style="display:none" class="content-box">
- <h1>Sampling Tools</h1>
- <xsl:for-each select="/functions/sampling/ftools_function">
- <div id="function">
+ <h1>Sampling Tools</h1>
+ <xsl:for-each select="/functions/sampling/ftools_function">
+ <div id="function">
<div id="head">
- <xsl:element name="img">
- <xsl:attribute name="src">
- <xsl:value-of select="image" />
- </xsl:attribute>
+ <xsl:element name="img">
+ <xsl:attribute name="src">
+ <xsl:value-of select="image" />
+ </xsl:attribute>
</xsl:element>
:
- <xsl:value-of select="name" />
- </div>
- <div id="description">
+ <xsl:value-of select="name" />
+ </div>
+ <div id="description">
<xsl:value-of select="description" />
</div>
<div id="long_description">
<xsl:value-of select="long_description" />
- </div>
- </div>
+ </div>
+ </div>
</xsl:for-each>
</div>
<div id="geoprocessing" style="display:none" class="content-box">
- <h1>Geoprocessing Tools</h1>
- <xsl:for-each select="/functions/geoprocessing/ftools_function">
- <div id="function">
+ <h1>Geoprocessing Tools</h1>
+ <xsl:for-each select="/functions/geoprocessing/ftools_function">
+ <div id="function">
<div id="head">
- <xsl:element name="img">
- <xsl:attribute name="src">
- <xsl:value-of select="image" />
- </xsl:attribute>
+ <xsl:element name="img">
+ <xsl:attribute name="src">
+ <xsl:value-of select="image" />
+ </xsl:attribute>
</xsl:element>
:
- <xsl:value-of select="name" />
- </div>
- <div id="description">
+ <xsl:value-of select="name" />
+ </div>
+ <div id="description">
<xsl:value-of select="description" />
</div>
<div id="long_description">
<xsl:value-of select="long_description" />
- </div>
- </div>
+ </div>
+ </div>
</xsl:for-each>
</div>
<div id="table" style="display:none" class="content-box">
- <h1>Geometry Tools</h1>
- <xsl:for-each select="/functions/geometry/ftools_function">
- <div id="function">
+ <h1>Geometry Tools</h1>
+ <xsl:for-each select="/functions/geometry/ftools_function">
+ <div id="function">
<div id="head">
- <xsl:element name="img">
- <xsl:attribute name="src">
- <xsl:value-of select="image" />
- </xsl:attribute>
+ <xsl:element name="img">
+ <xsl:attribute name="src">
+ <xsl:value-of select="image" />
+ </xsl:attribute>
</xsl:element>
:
- <xsl:value-of select="name" />
- </div>
- <div id="description">
+ <xsl:value-of select="name" />
+ </div>
+ <div id="description">
<xsl:value-of select="description" />
</div>
<div id="long_description">
<xsl:value-of select="long_description" />
- </div>
- </div>
+ </div>
+ </div>
</xsl:for-each>
</div>
<div id="management" style="display:none" class="content-box">
- <h1>Management Tools</h1>
- <xsl:for-each select="/functions/management/ftools_function">
- <div id="function">
+ <h1>Management Tools</h1>
+ <xsl:for-each select="/functions/management/ftools_function">
+ <div id="function">
<div id="head">
- <xsl:element name="img">
- <xsl:attribute name="src">
- <xsl:value-of select="image" />
- </xsl:attribute>
+ <xsl:element name="img">
+ <xsl:attribute name="src">
+ <xsl:value-of select="image" />
+ </xsl:attribute>
</xsl:element>
:
- <xsl:value-of select="name" />
- </div>
- <div id="description">
+ <xsl:value-of select="name" />
+ </div>
+ <div id="description">
<xsl:value-of select="description" />
</div>
<div id="long_description">
<xsl:value-of select="long_description" />
- </div>
- </div>
+ </div>
+ </div>
</xsl:for-each>
</div>
<div id="new" style="display:none" class="content-box">
- <h1>What's New</h1>
+ <h1>What's New</h1>
<ul>
<li>Inputs and outputs allowed to contain non-ascii characters</li>
<li>User able to specify encoding style for all outputs</li>
@@ -356,10 +356,10 @@
</li>
<li>As well as several new bug fixes, corrections, and improvements</li>
</ul>
- </div>
+ </div>
</div>
-</div>
-</body>
+</div>
+</body>
</html>
-</xsl:template>
+</xsl:template>
</xsl:stylesheet>
Modified: trunk/qgis/python/plugins/fTools/tools/doDefineProj.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doDefineProj.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doDefineProj.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,11 +1,11 @@
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-from qgis.gui import *
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+from qgis.gui import *
+
from frmReProject import Ui_Dialog
-
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
Modified: trunk/qgis/python/plugins/fTools/tools/doGeometry.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doGeometry.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doGeometry.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -400,53 +400,53 @@
nFeat = vprovider.featureCount()
nElement = 0
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), 0 )
- self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
- while vprovider.nextFeature( inFeat ):
- geom = inFeat.geometry()
- area = QgsDistanceArea()
- A = area.measure( geom )
- multi_geom = QgsGeometry()
- bounding = inFeat.geometry().boundingBox()
- xmin = bounding.xMinimum()
- ymin = bounding.yMinimum()
- xmax = bounding.xMaximum()
- ymax = bounding.yMaximum()
- if geom.type() == 2:
- cx = 0
- cy = 0
- area2 = 0
- if geom.isMultipart():
- multi_geom = geom.asMultiPolygon()
- for k in multi_geom:
- for h in k:
- for i in range(0, len(h) - 1):
- j = (i + 1) % len(h)
- factor = ((h[i].x()) * (h[j].y()) - (h[j].x()) * (h[i].y()))
- cx = cx + ((h[i].x()) + (h[j].x())) * factor
- cy = cy + ((h[i].y()) + (h[j].y())) * factor
- else:
- multi_geom = geom.asPolygon()
- for k in multi_geom:
- for i in range(0, len(k) - 1):
- j = (i + 1) % len(k)
- factor = (k[i].x()) * (k[j].y()) - (k[j].x()) * (k[i].y())
- cx = cx + ((k[i].x()) + (k[j].x())) * factor
- cy = cy + ((k[i].y()) + (k[j].y())) * factor
- A = A * 6
- factor = 1/A
- cx = cx * factor
- cy = cy * factor
- if cx < xmin:
- cx = cx * -1
- if cy < ymin:
- cy = cy * -1
- if cx > xmax:
- cx = cx * -1
- if cy > ymax:
- cy = cy * -1
- outfeat.setGeometry( QgsGeometry.fromPoint( QgsPoint( cx, cy ) ) )
- atMap = inFeat.attributeMap()
- outfeat.setAttributeMap( atMap )
+ self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
+ while vprovider.nextFeature( inFeat ):
+ geom = inFeat.geometry()
+ area = QgsDistanceArea()
+ A = area.measure( geom )
+ multi_geom = QgsGeometry()
+ bounding = inFeat.geometry().boundingBox()
+ xmin = bounding.xMinimum()
+ ymin = bounding.yMinimum()
+ xmax = bounding.xMaximum()
+ ymax = bounding.yMaximum()
+ if geom.type() == 2:
+ cx = 0
+ cy = 0
+ area2 = 0
+ if geom.isMultipart():
+ multi_geom = geom.asMultiPolygon()
+ for k in multi_geom:
+ for h in k:
+ for i in range(0, len(h) - 1):
+ j = (i + 1) % len(h)
+ factor = ((h[i].x()) * (h[j].y()) - (h[j].x()) * (h[i].y()))
+ cx = cx + ((h[i].x()) + (h[j].x())) * factor
+ cy = cy + ((h[i].y()) + (h[j].y())) * factor
+ else:
+ multi_geom = geom.asPolygon()
+ for k in multi_geom:
+ for i in range(0, len(k) - 1):
+ j = (i + 1) % len(k)
+ factor = (k[i].x()) * (k[j].y()) - (k[j].x()) * (k[i].y())
+ cx = cx + ((k[i].x()) + (k[j].x())) * factor
+ cy = cy + ((k[i].y()) + (k[j].y())) * factor
+ A = A * 6
+ factor = 1/A
+ cx = cx * factor
+ cy = cy * factor
+ if cx < xmin:
+ cx = cx * -1
+ if cy < ymin:
+ cy = cy * -1
+ if cx > xmax:
+ cx = cx * -1
+ if cy > ymax:
+ cy = cy * -1
+ outfeat.setGeometry( QgsGeometry.fromPoint( QgsPoint( cx, cy ) ) )
+ atMap = inFeat.attributeMap()
+ outfeat.setAttributeMap( atMap )
writer.addFeature( outfeat )
nElement += 1
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
Modified: trunk/qgis/python/plugins/fTools/tools/doIntersectLines.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doIntersectLines.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doIntersectLines.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -30,12 +30,12 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from frmIntersectLines import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from frmIntersectLines import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
Modified: trunk/qgis/python/plugins/fTools/tools/doJoinAttributes.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doJoinAttributes.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doJoinAttributes.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -31,13 +31,13 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-import struct, itertools, datetime, decimal, ftools_utils
-from frmJoinAttributes import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+import struct, itertools, datetime, decimal, ftools_utils
+from frmJoinAttributes import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
@@ -300,7 +300,7 @@
allAttrs = fProvider.attributeIndexes()
fProvider.select(allAttrs)
myFields = fProvider.fields()
- return myFields
+ return myFields
def dbfreader(self, f):
"""Returns an iterator over records in a Xbase DBF file.
Modified: trunk/qgis/python/plugins/fTools/tools/doMeanCoords.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doMeanCoords.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doMeanCoords.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,26 +1,26 @@
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from math import *
-from frmMeanCoords import Ui_Dialog
-
-class Dialog(QDialog, Ui_Dialog):
- def __init__(self, iface, function):
- QDialog.__init__(self)
- self.iface = iface
- self.function = function
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from math import *
+from frmMeanCoords import Ui_Dialog
+
+class Dialog(QDialog, Ui_Dialog):
+ def __init__(self, iface, function):
+ QDialog.__init__(self)
+ self.iface = iface
+ self.function = function
self.setupUi(self)
- self.updateUi()
+ self.updateUi()
QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
- QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
-
- # populate layer list
- self.progressBar.setValue(0)
- mapCanvas = self.iface.mapCanvas()
- for i in range(mapCanvas.layerCount()):
- layer = mapCanvas.layer(i)
- if layer.type() == layer.VectorLayer:
+ QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
+
+ # populate layer list
+ self.progressBar.setValue(0)
+ mapCanvas = self.iface.mapCanvas()
+ for i in range(mapCanvas.layerCount()):
+ layer = mapCanvas.layer(i)
+ if layer.type() == layer.VectorLayer:
self.inShape.addItem(layer.name())
def updateUi(self):
@@ -31,7 +31,7 @@
elif self.function == 2:
self.setWindowTitle("Standard distance")
self.resize(381, 100)
-
+
def update(self, inputLayer):
self.weightField.clear()
self.uniqueField.clear()
@@ -43,28 +43,28 @@
if changedField[i].type() == QVariant.Int or changedField[i].type() == QVariant.Double:
self.weightField.addItem(unicode(changedField[i].name()))
self.uniqueField.addItem(unicode(changedField[i].name()))
-
- def accept(self):
- if self.inShape.currentText() == "":
- QMessageBox.information(self, "Coordinate statistics", "No input vector layer specified")
- elif self.outShape.text() == "":
- QMessageBox.information(self, "Coordinate statistics", "Please specify output shapefile")
- else:
- inName = self.inShape.currentText()
- outPath = self.outShape.text()
-
- if outPath.contains("\\"):
- outName = outPath.right((outPath.length() - outPath.lastIndexOf("\\")) - 1)
- else:
- outName = outPath.right((outPath.length() - outPath.lastIndexOf("/")) - 1)
- if outName.endsWith(".shp"):
- outName = outName.left(outName.length() - 4)
- self.compute(inName, outPath, self.weightField.currentText(), self.sizeValue.value(), self.uniqueField.currentText())
- self.progressBar.setValue(100)
- self.outShape.clear()
- addToTOC = QMessageBox.question(self, "Coordinate statistics", "Created output point Shapefile:\n" + outPath
- + "\n\nWould you like to add the new layer to the TOC?", QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
- if addToTOC == QMessageBox.Yes:
+
+ def accept(self):
+ if self.inShape.currentText() == "":
+ QMessageBox.information(self, "Coordinate statistics", "No input vector layer specified")
+ elif self.outShape.text() == "":
+ QMessageBox.information(self, "Coordinate statistics", "Please specify output shapefile")
+ else:
+ inName = self.inShape.currentText()
+ outPath = self.outShape.text()
+
+ if outPath.contains("\\"):
+ outName = outPath.right((outPath.length() - outPath.lastIndexOf("\\")) - 1)
+ else:
+ outName = outPath.right((outPath.length() - outPath.lastIndexOf("/")) - 1)
+ if outName.endsWith(".shp"):
+ outName = outName.left(outName.length() - 4)
+ self.compute(inName, outPath, self.weightField.currentText(), self.sizeValue.value(), self.uniqueField.currentText())
+ self.progressBar.setValue(100)
+ self.outShape.clear()
+ addToTOC = QMessageBox.question(self, "Coordinate statistics", "Created output point Shapefile:\n" + outPath
+ + "\n\nWould you like to add the new layer to the TOC?", QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
+ if addToTOC == QMessageBox.Yes:
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
if self.vlayer.geometryType() == QGis.Point:
render = QgsSingleSymbolRenderer(QGis.Point)
@@ -75,25 +75,25 @@
symbol.setPointSize(5)
render.addSymbol(symbol)
self.vlayer.setRenderer(render)
- QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
- self.progressBar.setValue(0)
-
+ QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
+ self.progressBar.setValue(0)
+
def outFile(self):
self.outShape.clear()
( self.shapefileName, self.encoding ) = ftools_utils.saveDialog( self )
if self.shapefileName is None or self.encoding is None:
return
- self.outShape.setText( QString( self.shapefileName ) )
-
- def compute(self, inName, outName, weightField="", times=1, uniqueField=""):
- vlayer = self.getVectorLayerByName(inName)
+ self.outShape.setText( QString( self.shapefileName ) )
+
+ def compute(self, inName, outName, weightField="", times=1, uniqueField=""):
+ vlayer = self.getVectorLayerByName(inName)
provider = vlayer.dataProvider()
weightIndex = provider.fieldNameIndex(weightField)
- uniqueIndex = provider.fieldNameIndex(uniqueField)
- feat = QgsFeature()
- allAttrs = provider.attributeIndexes()
- provider.select(allAttrs)
- sRs = provider.crs()
+ uniqueIndex = provider.fieldNameIndex(uniqueField)
+ feat = QgsFeature()
+ allAttrs = provider.attributeIndexes()
+ provider.select(allAttrs)
+ sRs = provider.crs()
check = QFile(self.shapefileName)
if check.exists():
if not QgsVectorFileWriter.deleteShapeFile(self.shapefileName):
@@ -109,7 +109,7 @@
writer = QgsVectorFileWriter(self.shapefileName, self.encoding, fieldList, QGis.WKBPolygon, sRs)
else:
fieldList = { 0 : QgsField("MEAN_X", QVariant.Double), 1 : QgsField("MEAN_Y", QVariant.Double), 2 : QgsField("UID", QVariant.String) }
- writer = QgsVectorFileWriter(self.shapefileName, self.encoding, fieldList, QGis.WKBPoint, sRs)
+ writer = QgsVectorFileWriter(self.shapefileName, self.encoding, fieldList, QGis.WKBPoint, sRs)
outfeat = QgsFeature()
points = []
weights = []
@@ -118,7 +118,7 @@
self.progressBar.setValue(0)
self.progressBar.setRange(0, nFeat)
for j in uniqueValues:
- provider.rewind()
+ provider.rewind()
while provider.nextFeature(feat):
nElement += 1
self.progressBar.setValue(nElement)
@@ -132,7 +132,7 @@
if weightIndex == -1:
weight = 1.00
else:
- weight = float(feat.attributeMap()[weightIndex].toDouble()[0])
+ weight = float(feat.attributeMap()[weightIndex].toDouble()[0])
geom = QgsGeometry(feat.geometry())
geom = self.extract(geom)
for i in geom:
@@ -169,36 +169,36 @@
outfeat.setGeometry(QgsGeometry.fromPoint(meanPoint).buffer(sd * times, 10))
outfeat.addAttribute(0, QVariant(sd))
outfeat.addAttribute(1, QVariant(j))
- else:
+ else:
outfeat.setGeometry(QgsGeometry.fromPoint(meanPoint))
outfeat.addAttribute(0, QVariant(cx))
outfeat.addAttribute(1, QVariant(cy))
- outfeat.addAttribute(2, QVariant(j))
+ outfeat.addAttribute(2, QVariant(j))
writer.addFeature(outfeat)
if single:
- break
- del writer
-
-# Gets vector layer by layername in canvas
- def getVectorLayerByName(self, myName):
- mc = self.iface.mapCanvas()
- nLayers = mc.layerCount()
- for l in range(nLayers):
+ break
+ del writer
+
+# Gets vector layer by layername in canvas
+ def getVectorLayerByName(self, myName):
+ mc = self.iface.mapCanvas()
+ nLayers = mc.layerCount()
+ for l in range(nLayers):
layer = mc.layer(l)
if layer.name() == unicode(myName):
- vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name()))
- if vlayer.isValid():
- return vlayer
-
-# Retreive the field map of a vector Layer
- def getFieldList(self, vlayer):
- fProvider = vlayer.dataProvider()
- feat = QgsFeature()
- allAttrs = fProvider.attributeIndexes()
- # fetch all attributes for each feature
- fProvider.select(allAttrs)
- # retrieve all fields
- myFields = fProvider.fields()
+ vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name()))
+ if vlayer.isValid():
+ return vlayer
+
+# Retrieve the field map of a vector Layer
+ def getFieldList(self, vlayer):
+ fProvider = vlayer.dataProvider()
+ feat = QgsFeature()
+ allAttrs = fProvider.attributeIndexes()
+ # fetch all attributes for each feature
+ fProvider.select(allAttrs)
+ # retrieve all fields
+ myFields = fProvider.fields()
return myFields
def extract(self, geom):
@@ -238,5 +238,4 @@
if not f.attributeMap()[index].toString() in check:
values.append( f.attributeMap()[index] )
check.append( f.attributeMap()[index].toString() )
- return values
-
+ return values
Modified: trunk/qgis/python/plugins/fTools/tools/doPointDistance.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doPointDistance.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doPointDistance.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -32,13 +32,13 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-from frmPointDistance import Ui_Dialog
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+from frmPointDistance import Ui_Dialog
import csv
-from math import *
+from math import *
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
Modified: trunk/qgis/python/plugins/fTools/tools/doPointsInPolygon.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doPointsInPolygon.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doPointsInPolygon.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -30,12 +30,12 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from frmPointsInPolygon import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from frmPointsInPolygon import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
Modified: trunk/qgis/python/plugins/fTools/tools/doRandPoints.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doRandPoints.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doRandPoints.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -29,32 +29,32 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#---------------------------------------------------------------------
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-from random import *
-import math, ftools_utils
-from frmRandPoints import Ui_Dialog
-
-class Dialog(QDialog, Ui_Dialog):
- def __init__(self, iface):
- QDialog.__init__(self)
- self.iface = iface
- self.setupUi(self)
- QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
- QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+from random import *
+import math, ftools_utils
+from frmRandPoints import Ui_Dialog
+
+class Dialog(QDialog, Ui_Dialog):
+ def __init__(self, iface):
+ QDialog.__init__(self)
+ self.iface = iface
+ self.setupUi(self)
+ QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
+ QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
self.progressBar.setValue(0)
- self.setWindowTitle("Random points")
- mapCanvas = self.iface.mapCanvas()
- for i in range(mapCanvas.layerCount()):
+ self.setWindowTitle("Random points")
+ mapCanvas = self.iface.mapCanvas()
+ for i in range(mapCanvas.layerCount()):
layer = mapCanvas.layer(i)
if (layer.type() == layer.VectorLayer and layer.geometryType() == QGis.Polygon) or layer.type() == layer.RasterLayer:
self.inShape.addItem(layer.name())
# If input layer is changed, update field list
- def update(self, inputLayer):
+ def update(self, inputLayer):
self.cmbField.clear()
changedLayer = self.getMapLayerByName(inputLayer)
if changedLayer.type() == changedLayer.VectorLayer:
@@ -76,12 +76,12 @@
self.cmbField.setEnabled(False)
self.label_4.setEnabled(False)
-# when 'OK' button is pressed, gather required inputs, and initiate random points generation
- def accept(self):
- if self.inShape.currentText() == "":
- QMessageBox.information(self, "Random Points", "No input layer specified")
- elif self.outShape.text() == "":
- QMessageBox.information(self, "Random Points", "Please specify output shapefile")
+# when 'OK' button is pressed, gather required inputs, and initiate random points generation
+ def accept(self):
+ if self.inShape.currentText() == "":
+ QMessageBox.information(self, "Random Points", "No input layer specified")
+ elif self.outShape.text() == "":
+ QMessageBox.information(self, "Random Points", "Please specify output shapefile")
else:
inName = self.inShape.currentText()
self.progressBar.setValue(1)
@@ -129,15 +129,15 @@
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
self.progressBar.setValue(0)
-
+
def outFile(self):
self.outShape.clear()
( self.shapefileName, self.encoding ) = ftools_utils.saveDialog( self )
if self.shapefileName is None or self.encoding is None:
return
self.outShape.setText( QString( self.shapefileName ) )
-
-# combine all polygons in layer to create single polygon (slow for complex polygons)
+
+# combine all polygons in layer to create single polygon (slow for complex polygons)
def createSinglePolygon(self, vlayer, progressBar):
provider = vlayer.dataProvider()
allAttrs = provider.attributeIndexes()
@@ -157,8 +157,8 @@
count = count + add
progressBar.setValue(count)
return geom
-
-# Generate list of random points
+
+# Generate list of random points
def simpleRandom(self, n, bound, xmin, xmax, ymin, ymax):
seed()
points = []
@@ -169,12 +169,12 @@
points.append(pGeom)
i = i + 1
return points
-
-# Get vector layer by name from TOC
- def getVectorLayerByName(self, myName):
- mc = self.iface.mapCanvas()
- nLayers = mc.layerCount()
- for l in range(nLayers):
+
+# Get vector layer by name from TOC
+ def getVectorLayerByName(self, myName):
+ mc = self.iface.mapCanvas()
+ nLayers = mc.layerCount()
+ for l in range(nLayers):
layer = mc.layer(l)
if layer.name() == unicode(myName):
vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name()))
@@ -182,8 +182,8 @@
return vlayer
else:
QMessageBox.information(self, "Generate Centroids", "Vector layer is not valid")
-
-# Get map layer by name from TOC
+
+# Get map layer by name from TOC
def getMapLayerByName(self, myName):
mc = self.iface.mapCanvas()
nLayers = mc.layerCount()
@@ -191,9 +191,8 @@
layer = mc.layer(l)
if layer.name() == unicode(myName):
if layer.isValid():
- return layer
-
-# Retreive the field map of a vector Layer
+ return layer
+# Retrieve the field map of a vector Layer
def getFieldList(self, vlayer):
fProvider = vlayer.dataProvider()
feat = QgsFeature()
@@ -201,8 +200,8 @@
fProvider.select(allAttrs)
myFields = fProvider.fields()
return myFields
-
-
+
+
def randomize(self, inLayer, outPath, minimum, design, value, progressBar):
outFeat = QgsFeature()
if design == "unstratified":
@@ -231,8 +230,8 @@
count = count + add
progressBar.setValue(count)
del writer
-
-#
+
+#
def loopThruPolygons(self, inLayer, numRand, design, progressBar):
sProvider = inLayer.dataProvider()
sAllAttrs = sProvider.attributeIndexes()
@@ -259,4 +258,4 @@
sPoints.extend(self.simpleRandom(value, sGeom, sExt.xMinimum(), sExt.xMaximum(), sExt.yMinimum(), sExt.yMaximum()))
count = count + add
progressBar.setValue(count)
- return sPoints
+ return sPoints
Modified: trunk/qgis/python/plugins/fTools/tools/doRandom.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doRandom.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doRandom.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,64 +1,64 @@
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-
-from frmRandom import Ui_Dialog
-import random
-class Dialog(QDialog, Ui_Dialog):
- def __init__(self, iface):
- QDialog.__init__(self)
- self.iface = iface
- # Set up the user interface from Designer.
- self.setupUi(self)
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+
+from frmRandom import Ui_Dialog
+import random
+class Dialog(QDialog, Ui_Dialog):
+ def __init__(self, iface):
+ QDialog.__init__(self)
+ self.iface = iface
+ # Set up the user interface from Designer.
+ self.setupUi(self)
QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.changed)
- self.setWindowTitle("Random selection")
- # populate layer list
- self.progressBar.setValue(0)
- mapCanvas = self.iface.mapCanvas()
- for i in range(mapCanvas.layerCount()):
- layer = mapCanvas.layer(i)
- if layer.type() == layer.VectorLayer:
- self.inShape.addItem(layer.name())
-
- def changed(self, inputLayer):
- changedLayer = self.getVectorLayerByName(inputLayer)
- changedProvider = changedLayer.dataProvider()
- upperVal = changedProvider.featureCount()
- self.spnNumber.setMaximum(upperVal)
-
- def accept(self):
- if self.inShape.currentText() == "":
- QMessageBox.information(self, "Random Selection Tool", "No input shapefile specified")
- else:
- self.progressBar.setValue(10)
- inName = self.inShape.currentText()
- self.progressBar.setValue(20)
- layer = self.getVectorLayerByName(inName)
- self.progressBar.setValue(30)
- if self.rdoNumber.isChecked():
- value = self.spnNumber.value()
- self.progressBar.setValue(60)
- else:
- value = self.spnPercent.value()
- self.progressBar.setValue(50)
- value = int(round((value / 100.0000), 4) * layer.featureCount())
- self.progressBar.setValue(60)
- selran = random.sample(xrange(0, layer.featureCount()), value)
- self.progressBar.setValue(70)
- self.progressBar.setValue(80)
- self.progressBar.setValue(90)
- self.progressBar.setValue(100)
- layer.setSelectedFeatures(selran)
- self.progressBar.setValue(0)
-
-#Gets vector layer by layername in canvas
-#Return: QgsVectorLayer
- def getVectorLayerByName(self, myName):
- mc = self.iface.mapCanvas()
- nLayers = mc.layerCount()
- for l in range(nLayers):
- layer = mc.layer(l)
- if layer.name() == unicode(myName):
- if layer.isValid():
- return layer
+ self.setWindowTitle("Random selection")
+ # populate layer list
+ self.progressBar.setValue(0)
+ mapCanvas = self.iface.mapCanvas()
+ for i in range(mapCanvas.layerCount()):
+ layer = mapCanvas.layer(i)
+ if layer.type() == layer.VectorLayer:
+ self.inShape.addItem(layer.name())
+
+ def changed(self, inputLayer):
+ changedLayer = self.getVectorLayerByName(inputLayer)
+ changedProvider = changedLayer.dataProvider()
+ upperVal = changedProvider.featureCount()
+ self.spnNumber.setMaximum(upperVal)
+
+ def accept(self):
+ if self.inShape.currentText() == "":
+ QMessageBox.information(self, "Random Selection Tool", "No input shapefile specified")
+ else:
+ self.progressBar.setValue(10)
+ inName = self.inShape.currentText()
+ self.progressBar.setValue(20)
+ layer = self.getVectorLayerByName(inName)
+ self.progressBar.setValue(30)
+ if self.rdoNumber.isChecked():
+ value = self.spnNumber.value()
+ self.progressBar.setValue(60)
+ else:
+ value = self.spnPercent.value()
+ self.progressBar.setValue(50)
+ value = int(round((value / 100.0000), 4) * layer.featureCount())
+ self.progressBar.setValue(60)
+ selran = random.sample(xrange(0, layer.featureCount()), value)
+ self.progressBar.setValue(70)
+ self.progressBar.setValue(80)
+ self.progressBar.setValue(90)
+ self.progressBar.setValue(100)
+ layer.setSelectedFeatures(selran)
+ self.progressBar.setValue(0)
+
+#Gets vector layer by layername in canvas
+#Return: QgsVectorLayer
+ def getVectorLayerByName(self, myName):
+ mc = self.iface.mapCanvas()
+ nLayers = mc.layerCount()
+ for l in range(nLayers):
+ layer = mc.layer(l)
+ if layer.name() == unicode(myName):
+ if layer.isValid():
+ return layer
Modified: trunk/qgis/python/plugins/fTools/tools/doReProject.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doReProject.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doReProject.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,12 +1,12 @@
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from qgis.gui import *
-
-from frmReProject import Ui_Dialog
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from qgis.gui import *
+
+from frmReProject import Ui_Dialog
import types
-
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
@@ -69,7 +69,7 @@
format = QString( "<h2>%1</h2>%2 <br/> %3" )
header = QString( "Choose output CRS:" )
sentence1 = QString( "Please select the projection system to be used by the output layer." )
- sentence2 = QString( "Ouput layer will be projected from it's current CRS to the output CRS." )
+ sentence2 = QString( "Output layer will be projected from it's current CRS to the output CRS." )
self.projSelect = QgsGenericProjectionSelector(self, Qt.Widget)
self.projSelect.setMessage( format.arg( header ).arg( sentence1 ).arg( sentence2 ))
if self.projSelect.exec_():
@@ -124,7 +124,7 @@
else:
QMessageBox.information(self, "Export to new projection", "Identical output spatial reference system chosen")
return False
-
+
# Gets vector layer by layername in canvas
def getVectorLayerByName(self, myName):
mc = self.iface.mapCanvas()
@@ -134,9 +134,9 @@
if unicode(layer.name()) == unicode(myName):
vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name()))
if vlayer.isValid():
- return vlayer
-
-#Retreive the field map of a vector Layer
+ return vlayer
+
+#Retrieve the field map of a vector Layer
#Return: QgsFieldMap
def getFieldList(self, vlayer):
fProvider = vlayer.dataProvider()
@@ -144,9 +144,9 @@
allAttrs = fProvider.attributeIndexes()
fProvider.select(allAttrs)
myFields = fProvider.fields()
- return myFields
-
-#Converts all geometries to points, and reprojects using specified QgsCoordinateTransformation
+ return myFields
+
+#Converts all geometries to points, and reprojects using specified QgsCoordinateTransformation
#Output: Reprojected shapefile with attributes...
def pointReproject(self, vlayer, xform, writer, progressBar):
provider = vlayer.dataProvider()
@@ -175,7 +175,7 @@
outfeat.setGeometry(QgsGeometry.fromMultiPolyline([mappedTransform(xform, item) for item in multi_geom]))
else:
multi_geom = geom.asPolyline() #multi_geom is a line
- outfeat.setGeometry(QgsGeometry.fromPolyline([xform.transform(item) for item in multi_geom]))
+ outfeat.setGeometry(QgsGeometry.fromPolyline([xform.transform(item) for item in multi_geom]))
elif geom.type() == 2: # it's a polygon
if geom.isMultipart():
multi_geom = geom.asMultiPolygon() #multi_geom is a multipolygon
@@ -195,4 +195,4 @@
def mappedTransform(xform, inList):
return [xform.transform(elem) for elem in inList]
-
+
Modified: trunk/qgis/python/plugins/fTools/tools/doRegPoints.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doRegPoints.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doRegPoints.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -29,25 +29,25 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#---------------------------------------------------------------------
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from random import *
-from math import *
-from frmRegPoints import Ui_Dialog
-
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from random import *
+from math import *
+from frmRegPoints import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
- def __init__(self, iface):
- QDialog.__init__(self)
- self.iface = iface
- self.setupUi(self)
+ def __init__(self, iface):
+ QDialog.__init__(self)
+ self.iface = iface
+ self.setupUi(self)
QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
- self.setWindowTitle("Regular points")
- self.progressBar.setValue(0)
- mapCanvas = self.iface.mapCanvas()
- for i in range(mapCanvas.layerCount()):
+ self.setWindowTitle("Regular points")
+ self.progressBar.setValue(0)
+ mapCanvas = self.iface.mapCanvas()
+ for i in range(mapCanvas.layerCount()):
layer = mapCanvas.layer(i)
self.inShape.addItem(layer.name())
@@ -85,15 +85,15 @@
self.vlayer = QgsVectorLayer(outPath, unicode(outName), "ogr")
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
self.progressBar.setValue(0)
-
+
def outFile(self):
self.outShape.clear()
( self.shapefileName, self.encoding ) = ftools_utils.saveDialog( self )
if self.shapefileName is None or self.encoding is None:
return
self.outShape.setText( QString( self.shapefileName ) )
-
-# Generate list of random points
+
+# Generate list of random points
def simpleRandom(self, n, bound, xmin, xmax, ymin, ymax):
seed()
points = []
@@ -104,12 +104,12 @@
points.append(pGeom)
i = i + 1
return points
-
-# Get vector layer by name from TOC
- def getVectorLayerByName(self, myName):
- mc = self.iface.mapCanvas()
- nLayers = mc.layerCount()
- for l in range(nLayers):
+
+# Get vector layer by name from TOC
+ def getVectorLayerByName(self, myName):
+ mc = self.iface.mapCanvas()
+ nLayers = mc.layerCount()
+ for l in range(nLayers):
layer = mc.layer(l)
if layer.name() == unicode(myName):
vlayer = QgsVectorLayer(unicode(layer.source()), unicode(myName), unicode(layer.dataProvider().name()))
@@ -117,8 +117,8 @@
return vlayer
else:
QMessageBox.information(self, "Generate Regular Points", "Vector layer is not valid")
-
-# Get map layer by name from TOC
+
+# Get map layer by name from TOC
def getMapLayerByName(self, myName):
mc = self.iface.mapCanvas()
nLayers = mc.layerCount()
@@ -127,8 +127,8 @@
if layer.name() == unicode(myName):
if layer.isValid():
return layer
-
-
+
+
def regularize(self, bound, outPath, offset, value, gridType, inset, progressBar):
area = bound.width() * bound.height()
if offset:
@@ -167,5 +167,5 @@
count = count + add
progressBar.setValue(count)
y = y - pointSpacing
- del writer
+ del writer
Modified: trunk/qgis/python/plugins/fTools/tools/doSelectByLocation.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doSelectByLocation.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doSelectByLocation.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -1,9 +1,9 @@
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from qgis.core import *
-from frmPointsInPolygon import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from qgis.core import *
+from frmPointsInPolygon import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
@@ -71,13 +71,13 @@
selectedSet = list(set(inputLayer.selectedFeaturesIds()).difference(selectedSet))
inputLayer.setSelectedFeatures(selectedSet)
-#Gets vector layer by layername in canvas
-#Return: QgsVectorLayer
- def getVectorLayerByName(self, myName):
- mc = self.iface.mapCanvas()
- nLayers = mc.layerCount()
- for l in range(nLayers):
- layer = mc.layer(l)
- if layer.name() == unicode(myName):
- if layer.isValid():
+#Gets vector layer by layername in canvas
+#Return: QgsVectorLayer
+ def getVectorLayerByName(self, myName):
+ mc = self.iface.mapCanvas()
+ nLayers = mc.layerCount()
+ for l in range(nLayers):
+ layer = mc.layer(l)
+ if layer.name() == unicode(myName):
+ if layer.isValid():
return layer
Modified: trunk/qgis/python/plugins/fTools/tools/doSpatialJoin.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doSpatialJoin.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doSpatialJoin.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -32,12 +32,12 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from frmSpatialJoin import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from frmSpatialJoin import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
Modified: trunk/qgis/python/plugins/fTools/tools/doSubsetSelect.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doSubsetSelect.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doSubsetSelect.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -29,12 +29,12 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#--------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import random
-from qgis.core import *
-from frmSubsetSelect import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import random
+from qgis.core import *
+from frmSubsetSelect import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
@@ -127,7 +127,7 @@
selran.extend(mlayer.selectedFeaturesIds())
mlayer.setSelectedFeatures(selran)
else:
- mlayer.setSelectedFeatures(range(0, mlayer.featureCount()))
+ mlayer.setSelectedFeatures(range(0, mlayer.featureCount()))
def getVectorLayerByName(self, myName):
mc = self.iface.mapCanvas()
Modified: trunk/qgis/python/plugins/fTools/tools/doSumLines.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doSumLines.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doSumLines.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -30,12 +30,12 @@
#
#---------------------------------------------------------------------
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from frmSumLines import Ui_Dialog
-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from frmSumLines import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
Modified: trunk/qgis/python/plugins/fTools/tools/doVectorGrid.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doVectorGrid.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doVectorGrid.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -28,13 +28,13 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#---------------------------------------------------------------------
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-import ftools_utils
-from qgis.core import *
-from frmVectorGrid import Ui_Dialog
-
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+import ftools_utils
+from qgis.core import *
+from frmVectorGrid import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
@@ -76,11 +76,11 @@
self.xMax.setText( unicode( boundBox.xMaximum() ) )
self.yMax.setText( unicode( boundBox.yMaximum() ) )
- def accept(self):
+ def accept(self):
if self.xMin.text() == "" or self.xMax.text() == "" or self.yMin.text() == "" or self.yMax.text() == "":
- QMessageBox.information(self, "Vector grid", "Please specify valid extent coordinates")
+ QMessageBox.information(self, "Vector grid", "Please specify valid extent coordinates")
elif self.outShape.text() == "":
- QMessageBox.information(self, "Vector grid", "Please specify output shapefile")
+ QMessageBox.information(self, "Vector grid", "Please specify output shapefile")
else:
try:
boundBox = QgsRectangle(
Modified: trunk/qgis/python/plugins/fTools/tools/doVectorSplit.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doVectorSplit.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doVectorSplit.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -26,14 +26,14 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-#---------------------------------------------------------------------
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-from qgis.core import *
-#import os, sys, string, math
-from frmVectorSplit import Ui_Dialog
-
+#---------------------------------------------------------------------
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+from qgis.core import *
+#import os, sys, string, math
+from frmVectorSplit import Ui_Dialog
+
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self)
Modified: trunk/qgis/python/plugins/fTools/tools/doVisual.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doVisual.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/doVisual.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -257,31 +257,31 @@
polygons = geom.asMultiPolygon()
for polygon in polygons:
if not self.isHoleNested( polygon ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " contains an unested hole" ) )
+ lstErrors.append( self.tr( "Feature %1 contains an unnested hole" ).arg( unicode( feat.id() ) ) )
count += 1
if not self.isPolygonClosed( polygon ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " is not closed" ) )
+ lstErrors.append( self.tr( "Feature %1 is not closed" ).arg( unicode( feat.id() ) ) )
count += 1
if self.isSelfIntersecting( polygon ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " is self intersecting" ) )
+ lstErrors.append( self.tr( "Feature %1 is self intersecting" ).arg( unicode( feat.id() ) ) )
count += 1
if not self.isCorrectOrientation( polygon ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " has incorrect node ordering" ) )
+ lstErrors.append( self.tr( "Feature %1 has incorrect node ordering" ).arg( unicode( feat.id() ) ) )
count += 1
else:
geom = geom.asPolygon()
if not self.isHoleNested( geom ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " contains an unested hole" ) )
+ lstErrors.append( self.tr( "Feature %1 contains an unnested hole" ).arg( unicode( feat.id() ) ) )
count += 1
if not self.isPolygonClosed( geom ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " is not closed" ) )
+ lstErrors.append( self.tr( "Feature %1 is not closed" ).arg( unicode( feat.id() ) ) )
count += 1
if self.isSelfIntersecting( geom ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " is self intersecting" ) )
+ lstErrors.append( self.tr( "Feature %1 is self intersecting" ).arg( unicode( feat.id() ) ) )
count += 1
if not self.isCorrectOrientation( geom ):
- lstErrors.append( self.tr( "Feature " ) + unicode( feat.id() ) + self.tr( " has incorrect node ordering" ) )
+ lstErrors.append( self.tr( "Feature %1 has incorrect node ordering" ).arg( unicode( feat.id() ) ) )
count += 1
return ( lstErrors, count )
Modified: trunk/qgis/python/plugins/fTools/tools/frmReProject.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/frmReProject.py 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/frmReProject.py 2009-02-01 15:44:02 UTC (rev 10080)
@@ -125,7 +125,7 @@
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Projection Management Tool", None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate("Dialog", "Input vector layer", None, QtGui.QApplication.UnicodeUTF8))
self.label_4.setText(QtGui.QApplication.translate("Dialog", "Input spatial reference system", None, QtGui.QApplication.UnicodeUTF8))
- self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", "Ouput spatial reference system", None, QtGui.QApplication.UnicodeUTF8))
+ self.groupBox.setTitle(QtGui.QApplication.translate("Dialog", "Output spatial reference system", None, QtGui.QApplication.UnicodeUTF8))
self.rdoProjection.setText(QtGui.QApplication.translate("Dialog", "Use predefined spatial reference system", None, QtGui.QApplication.UnicodeUTF8))
self.btnProjection.setText(QtGui.QApplication.translate("Dialog", "Choose", None, QtGui.QApplication.UnicodeUTF8))
self.radioButton_2.setText(QtGui.QApplication.translate("Dialog", "Import spatial reference system from existing layer", None, QtGui.QApplication.UnicodeUTF8))
Modified: trunk/qgis/python/plugins/fTools/tools/frmReProject.ui
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/frmReProject.ui 2009-02-01 11:58:15 UTC (rev 10079)
+++ trunk/qgis/python/plugins/fTools/tools/frmReProject.ui 2009-02-01 15:44:02 UTC (rev 10080)
@@ -46,7 +46,7 @@
<item row="4" column="0" colspan="2" >
<widget class="QGroupBox" name="groupBox" >
<property name="title" >
- <string>Ouput spatial reference system</string>
+ <string>Output spatial reference system</string>
</property>
<layout class="QGridLayout" >
<item row="0" column="0" >
More information about the QGIS-commit
mailing list