In QGIS 3.0, the vertex tool (same as node tool from QGIS 2.x) works a bit differently. Whether this is an improvement or not is a matter of opinion. It certainly takes a bit of getting used to.
Moving a vertex
2.x: Click on a vertex or segment to enable vertex editing for that feature. Click on vertex you want to move. Without releasing the mouse, drag it ...
Ring (boundary) directions are needed to prevent ambiguities for geographic coordinate systems that cover a finite surface, since the boundary would define two areas, one left and one right of the boundary along it's direction. Determining which of those two areas is the bigger one is possible, but still leaves the ambiguity.
Here is an overview on outer ...
No need to create a new layer. You can show your layer's vertices using the Outline: Marker line Symbol layer type.
Just add a new symbol layer
Add a new symbol layer;
Choose Outline Marker line (top right corner);
In the Marker placement, Choose "On every vertex"
You can even style the marker to look like the red cross symbol used on layers in edit mode.
In the OGC specification, which can be downloaded [here],(http://www.opengeospatial.org/standards/sfs) they state:
"Polygon rotation is not defined by this standard; actual polygon rotation may be in a clockwise or counter-clockwise direction."
In the Oracle docs, it is clearly stated that exterior ring boundaries are oriented counterclockwise, and ...
Number of points - just simple formula in QGIS field calculator:
See the screenshot below: in this case, the number of vertices of each feature is added to the field "vertex" in the attribute table. Alternatively, you can create also "Create a new field" and get results there.
I often refer to the ESRI GIS dictionary in these cases. Based on these definitions, nodes have topology whereas vertices do not.
[Euclidean geometry] One of a set of ordered x,y coordinate
pairs that defines the shape of a line or polygon feature.
[ESRI software] In a geodatabase, the point representing the beginning or ...
This works with a standard ArcGIS license:
desc = arcpy.Describe(fcl)
shapefieldname = desc.ShapeFieldName
gebieden = arcpy.UpdateCursor(fcl)
for gebied in gebieden:
polygoon = gebied.getValue(shapefieldname)
for punten in polygoon:
for punt in punten:
print punt.X, punt.Y
Possible workaround, maybe good as just temporary solution for few data:
Enable snapping (Settings --> Snapping Options...). Set snap to vertex and set some tolerance.
Create a "dummy" line feature snapped on vertices you want move.
In snapping option check Enable topological editing
Activate node tool and select vertices of "dummy" line and move (hold ...
I know this is forever after you asked, but I found your question when I attempted to do the same thing.
At least in QGIS Version 3.8.0, this has been made incredibly easy.
Layer Properties -> Symbology
Add an Outline: Marker Line
Make sure the points are on every vertex.
Add a Font Marker as a child of the Marker Line created above.
For the ...
If you're input is a multilinestring, then you'll need to handle that by either iterating through all the parts or (blindly!) just taking the first part alone.
For QGIS <= 3.4:
To take the first part:
multilinestring = feature.geometry().get()
first_part = multilinestring.geometryN(0)
# first_part will be a QgsLineString object
To get the first/last ...
Yes, you can enable the Advanced digitizing tools whilst editing. When enabled, there is an active function which snaps the selected vertices to the nearest common angle. You can open the advanced tools from the menubar:
View > Panels > Advanced Digitizing Panel
Click the left-most icon to ensure it is enabed and set the common snapping angle:
If you want to move a vertex you need to do start editing -> Select vertex tool -> select the vertex you want to move and move it:
Thanks to Matthias Kuhn who provided more details about the tool. In QGIS 3.x the behavior of the vertex tool is different from QGIS 2.x. In QGIS 3.x it is a click-click behavior, which means you need to click on the vertex that ...
To extract the total number of vertices in a shapefile, I'd simply use a bit of Spatialite SQL:
ogrinfo states.shp -dialect SQLite -sql "SELECT sum(ST_NPoints(geometry)) AS n_vertices FROM states"
Example of output:
ogrinfo states.shp -dialect SQLite -sql
"SELECT sum(ST_NPoints(geometry)) AS n_vertices FROM states"
INFO: Open of `states.shp'
There is a way to display the coordinates... though not as a label.
One can add style with geometry generator to extract the vertices, then add a font marker style that will be overridden to display the vertices coordinates..
add the vertices
Add a style of type geometry generator, geometry type point computed with the expression nodes_to_points( $geometry)...
My high level, and easy to remember, "definition" would be ...
Nodes are vertices but only two vertices are nodes i.e. those that start and end a line.
Nodes can be sub-classified into those which are:
Dangling i.e. share their precise X,Y location with no other nodes
Pseudo i.e. share their precise X,Y location with only one other node
True i.e. share ...
I've put together some code below which seems to create single segment lines from polyline (which can be multipart) feature classes while retaining their attributes.
I recommend that you run it against a small test dataset or two first, and if it seems to do what you want, then comment out or remove the print statements to gain some performance.
If you add ...
In order to solve your problem:
Create a FileGeodatabase
In the FileGeodatabase create a FeatureDataset
Import the shape in the FeatureDataset
In the FeatureDataset create a Topology
In the wizard choose next and in the Rules page click Add Rule
Select "Must Not Overlap" or "Must Not Have Gaps", check "Show Errors" and click OK.
Complete the wizard and ...
Here's a very simple approach that offloads all the processing into the Sort GP tool. Since you have access to an Advanced license, sorting by shape and starting at the lower left corner gives quick results.
import os, arcpy
arcpy.env.overwriteOutput = True
inFC = r'<path>'
outFC = r'<path>'
# create output FC to hold points and field to link ...
Here is a code snippet in arcpy that will do the job:
input_feature_class = r'C:\path\to\polyline_feature_class'
with arcpy.da.SearchCursor(input_feature_class, ['SHAPE@']) as s_cur:
for row in s_cur:
polyline = row
for feature in polyline:
for point in feature:
The key to ...
Unfortunately the ST_Dump() and ST_DumpPoints() functions are not yet implemented in Virtual Layer. Therefore, I am offering a workaround on how to extract vertices of polygon features.
This solution incorporates several functions, namely NumInteriorRings(), ST_InteriorRingN(), ST_ExteriorRing(), ST_PointN(), and ST_NPoints().
Someone can find this solution ...
There are several options to do this:
Create a new line-layer, toggle editing, activate snapping and draw a line by snapping to start- and endpoint.
Use this expression with Geometry generator or Geometry by expression (see here how):
make_line (start_point ($geometry),end_point ($geometry))
Create a virtual layer with this query:
select make_line (...
Once in edit mode, select the vertex tool, then on the snapping toolbar, select enable topological editing and at last left-click once on the shared vertex, move them, click a 2nd time to set the new location.
Those lines and vertices are actually holes or islands on your polygon.
Try using the delete part or delete ring tools in the advanced digitizing toolbar, and click on one of the nodes. I have noticed that sometimes you need to drag one or more nodes a bit to be able to click on the hole\island boundaries to delete it.
We are discussing a particular form of vector representation of objects in a GIS. Such objects are the continuous images of homogeneous simplicial complexes: points, multipoints, polylines, multiple polylines, (triangulable) polygons, collections of such polygons, and "TIN"s.
A simplicial complex describes two conceptually different things, albeit ones ...