According to Mike Bostock (and other contributors to the TopoJSON extension):
TopoJSON is an extension of GeoJSON that encodes topology. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called arcs. TopoJSON eliminates redundancy, offering much more compact representations of ...
Enable Topology Checker Plugin in Plugin Manager. Add your polygonal layer in Topology Rule Settings window, select "must not overlap" rule and add them. To see overlap errors click on Validate button.
The new Topology Checker Plugin will be available in the next release. You can see it at work in this video:
More info: https://github.com/qgis/Quantum-GIS/pull/356
There are TWO "right hand rules" (well, scores, if not hundreds, but the direction of magnetic force induced on a positive charge isn't relevant to this discussion).
One asserts that vertices be ordered in rings so that, if you walked the perimeter, with one hand within the figure, and one hand outside, that the right hand be inside: the exterior ring is ...
Hypsography concerns the land's elevation, altitude or height above sea-level or some other reference surface. (Hypso is derived from the Greek Ύψος for height.)
Topography concerns physical and cultural features of the land and so includes hypsography, hydrology, the built environment, major boundaries, communication channels, etc. (Topo is derived from ...
CREATE EXTENSION postgis_topology;
... like always, it is when you ask the question that you found the solution... I wasn't because of the installation but topology has to be activated for every database you want to use id with...
I just had a similar problem, and the solution is the following:
You have many queries, so the first question is which one of them fails. I'd suggest bisecting the entire SQL query to find where the problem happens exactly. Comment one half of the query (but make it still work) and see if the problem is still there, if so, bisect this half, if not, the ...
Yes - there is no restriction on the actual shapes or positions of the polygons in a shapefile. The only real restriction is that you can't mix geometry types in a shapefile (so no points & polygons).
While it is good practice not to have self intersecting polygons in there I don't think the spec actually forbids it unlike some other formats.
The most successful way I've ever had of correcting topological errors in QGIS is actually to use GRASS. You can either:
run v.clean from the processing toolbox (manual here https://grass.osgeo.org/grass73/manuals/v.clean.html);
use the 'Repair Geometry' plugin (which is an automation of the v.clean tool); or if all else fails
import the dataset into GRASS ...
In QGIS 3.4 you may need to enable Snapping toolbar by right-click the main menu bar and select Snapping toolbar, and you will find this menu:
The last three icons are Enable Topological Editing, Enable Snapping on Intersection and Enable Tracing, respectively.
Also, in QGIS 3.4 there is a new feature that you can enable Topological Check during digitizing ...
Couple of suggestions:
Run Check Geometry tool on your layer that you wish to clip, you could then follow that up with a Repair Geometry if it finds errors. You may wish to do that on a backed up copy.
Check whether the coordinate systems are different. Perhaps you are trying to Clip a dataset in Decimal Degrees with a dataset that is in Meters or vice ...
"Back in the “olden-days” GIS users, particularly ArcInfo users, were well versed in geospatial topology because of the coverage" (Geospatial Topology, the Basics)
But ESRI is not the only solution:
From these beginnings (at the same time as ArcInfo), GRASS GIS is also a full topological GIS with rules that differ from those of ESRI:
The topology in ...
Topology functions are stored in the topology schema, topology data (edges, faces, nodes, relations) are stored in a user-defined schema, and relations (topo id, layer id, element id, element type) are stored with the geometry data.
From the command line you can view tables in the topology schema with:
Here a generic soluion, that you can impĺement with PostGIS or any other OGC-compliant software.
NOTE: as I say before, a key concept in FOSS and GIS is standardization: the best solutions adopt standards, like OGC ones.
Your problem is to "find pseudo nodes"... But I think that it is a little more, "find non-pseudo nodes and join lines of pseudo nodes". ...
This can be seen as a preliminary to @Underdark's answer whereby you can clean the topology of the vector layer before generalizing. GRASS has a v.clean function which contains a number of tools to repair the layer such as:
snap which 'snaps' lines to the nearest vertex
rmdangle which removes any annoying dangles
rmdupl which removes duplicated geometry ...
Here's an attempt with postgis. i've used data imported from natural earth data, admin level 1, 1:10m scale.
This will take a long time as it's a 4-way cartesian join with st_relate().
The magic number "FF2F11212" should match when two polygons' intersections are a line, but not when they join at a point. This uses something called DE-9IM. I use a ...
With a bit of programming, you can identify points where the number of lines that intersect the point is not 4.
You don't mention what version of arcgis, but with the lowest level (Basic, ArcView, or whatever Esri is calling it this week) you should be able to build a MapTopology.
The code in this answer can be edited to accomplish this, by replacing this ...
You can use the v.in.ogr GRASS module.
See Fixing Invalid Geometries With Quantum GIS
Regarding to your new questions, there is a phrase in the above link: Fire up the QGIS/GRASS plugin (or the GRASS native GUI if you prefer) and open/create a mapset and open the GRASS toolbox.
As you can see, it possible to clean topological error directly in QGIS (but ...
Topology means "the rules and behaviors that model how points, lines, and polygons share coincident geometry." (Source.) These rules can apply specifically to geometry and how it is stored, or be created by you to check for certain things.
Topology Checker looks at rules you have set up or chosen to apply to the data. Things like a line must be inside a ...
Here is a link to my PL/pgSQL function which does exactly what the OP is asking for: removing spikes from polygons and linestrings.
Here you can download it and read the documentation: PostGIS NormalizeGeometry.
As suggested in the comments, here is an example:
WITH temp (wkt) AS (
('LINESTRING(0 0, 2 2, 0 4, -5 4, 0 4.001, 2 6)'),
There are a few ways to do this. I have completed this in the past with great results using a combination of attributes and raster processing. The premise of the process is to assign each feature with a value of n (1, 2, 4, 8, 16, 32, 64, etc.). Assigning these values ensures that when you subtract layer one (1985) from layer 2 (1997) you get a unique ...
I've managed to solve this, without using the mentioned GRASS tools or topological functions.
Basically I take all start- and endnodes, put them in a new, temporary table, put a buffer around them, union the buffer objects, and move all found nodes in each buffer to the centroid of the buffer.
When that's done I move the original begin and end points to ...
In case you haven't tried it yet, the pgRouting Workshop is always a good place to get started.
When you used osm2po to convert your OSM data, then source and target attributes are already there and ready to use.
Sometimes the vertices table, that contains all source and target ID's, is useful to find the nearest vertex from a geographic point. The osm2po ...
That's possible using symbol levels - just like when creating a road style for linear features.
Here an example using Natural earth countries: it looks as if they have been dissolved - but it is only a rendering effect.
The outline color and width are controlled on the symbol layer level: click on the blue symbol and there will be an option to configure ...
I got this working by using ST_Node first, in conjunction with ST_Collect, to convert the lines into a set of noded linestrings within a MultiLinestring.
As it says in the docs for ST_Node:
Fully node a set of linestrings using the least possible number of nodes while preserving all of the input ones.
What this means, is that all of the linestrings are ...
A better method to simplify is using the GRASS tool v.generalize from Menu Processing / Toolbox. It keeps topology intact, thus no need to fill sliver polygons.
I' m not sure if you only have gaps - if the polygons also overlap, you must run at least two tools. So probably starting to create simplified and topologically correct geometries (no gaps, no ...
Your data has an accuray of 1 cm. With this accuray I would not use a x,y tolerance of 1 cm. During feature processing operations coordinates that fall within the x,y tolerance will snap to the same shared coordinate location. The maximum distance a coordinate could move to its new location is the square root of 2 times the x,y tolerance. If ...
If you run an intersection between the 2 different line feature classes, and specify the output type to be Point, then you should be able to do a count of the ids in the point table of the input lines.