Hot answers tagged

13

Here is the answer Bearing does not apply to a whole line, rather to a segment (2-point line), so the first step is to break down the polylines to two point lines. With the segments apply the angle, but simplified to only the first two quadrants of the circle (0-180 degrees) by flipping the lines if the Y coordinate is lower at the end - lines go both ways. ...


12

Proper one-sided buffers were supposed to have landed in 1.5, but it looks to me that while the styles did land, sidedness didn't make it in. There is however a current patchset which exposes GEOSSingleSidedBuffer and performs the one-sided buffer as expected, under the name ST_OffsetCurve; see further background in ticket #413. In use: select ST_AsText(...


6

I realize that you are not asking for an SQL solution for your problem, but consider for a second how quickly this problem could be solved using SQL. ArcGIS has the capability to integrate with Microsoft SQL server, and there is nothing saying you can't move the whole procedure to PostGIS. The following code will absolutely solve your problem, given that ...


5

You can use an offset for one of the two routes. You find the option for each line style.


5

Not sure if I fully understand the question, but GRASS v.parallel from the amazing Sextante toolbox will create parallel lines (in a new shapefile). You'll probably want to use the same value for the offset along the major axis as you use for the offset along the minor axis. N.


4

This sample creates two polygons on either side of a linestring. It requires PostGIS 1.5 or greater. I'm not sure how well it will cope with lines that cross themselves. SELECT ST_AsText(geom) FROM ST_Dump (( SELECT ST_Polygonize(GEOMUNION(ST_Boundary(ST_Buffer(the_geom, 0.5, 'endcap=flat join=round')), the_geom)) AS buffer_sides FROM (SELECT ...


4

Merging your truck routes data looks complex, and it is maybe not necessary. Another approach could be the following: Retrieve some road network data for your area of interest. Maybe you already have it. Otherwise, you could get openstreetmap data on roads. Link or snap your route data to this network using some basic data matching operations. A simple ...


4

As other's have answered, the generalization tools will help you, but to avoid the gaps and slivers, you will need to have the tool resolve the topological errors


4

How about generalization?


4

"Simplifying and smoothing features" might help GIS Stack user Mapperz blogged about this some time ago


4

Your final objective seems to be the matching of line segments. We've found that open jump with roadmatcher was very usefull for this kind of process, and it is open source. Within ArcGIS, the tool "collapse dual line to centerline" could also help you to identify those lines (there is a minimum and maximum width parameter).


3

Perhaps you could create a 2m buffer with the dissolve option set to NONE around the lines and find the buffers inside of which more than one line falls. The arcpy tools I am thinking could be used for this are: arcpy.Buffer_analysis("lines.shp","lines_buffer2m.shp","2 Meters","FULL","ROUND","NONE") arcpy.TabulateIntersection_analysis("lines_buffer2m.shp","...


3

In ArcGIS Desktop, you can use the Integrate Tool to move the vertices of two feature classes to be coincident within a certain threshhold distance. As long as you are certain your verticies are very close and carefully set your threshold distance, you can then do a Spatial Join on geometries that are unique. Note however, that this will change the ...


3

I presume you do not actually mean editing the raw vector data but editing the cartographic representation of that data. The simple approach to representing lines that share the same location would be to change their symbology from the default Simple Line Symbol to Cartographic Line Symbol and then set an offset as required. You can then save this as a ...


2

http://mapshaper.org/ provides an online applet to do that (see here). Polygon data are uploaded from a shp file, the simplification level can be controlled on-the-fly with a slider bar, and the simplified data can be imported. Of course, the simplification preserves the topological relationships between polygons (no gaps, no overlaps are created). It is ...


2

Here is another option. If you are just worried about the visualisation of these parcels, then if you import them into a File geodatabase you can then create Cartographic Representations over them. Then the cartographic representations can be easily modified so that the parcels are smoothed out. This will only work in a File Geodatabase and will mean that ...


2

I know this post is a bit dated, but thought I would propose the use of another tool. Integrate allows the user to define an x,y tolerance, and is useful if "You want lines to have vertices wherever they intersect." I'm not entirely sure if it will work for this application but may warrant some investigation.


2

ArcMap has Extend Lines in the Editing Toolbox. A Standard or Advanced license is required. The Parcel Polygons might need to be converted to Lines and added to the same feature class that you are extending.


1

The tool that does what you want is the Detect Feature Changes tool. I think it first became available at 10.2, and there is an enhanced version at 10.4 that evaluates the relative line directions as well as proximity and parallel segments. It worked well for me when I wanted to replace a portion of my network of roads with a more accurate set of lines, ...


1

First, use only the select and st_astext() to check the results: (adapt to your fields) select test_data_,id_field,test_data_.geom,st_astext(ST_OffsetCurve( test_data_.geom, test_data_.buffer_dis, 'join=mitre mitre_limit=5.0')) If all right then: select test_data_,id_field,test_data_.geom,ST_OffsetCurve( test_data_.geom, test_data_.buffer_dis, 'join=...


1

A single-vertex line is an invalid geometry. It is essentially a point geometry. A line-offset cannot be determined for a line with only one vertex. Try eliminate invalid geometries with a filter on ST_IsValid: SELECT ST_OffsetCurve(t.geom, 3) FROM the_table AS t WHERE ST_IsValid(t.geom);



Only top voted, non community-wiki answers of a minimum length are eligible