Hot answers tagged parallel-lines
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. ...
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 ...
If you're interested in learning more about this area, the problem is named cartographic displacement, and its one aspect of cartographic generalization. A couple of articles discussing displacement and approaches for handling the problem: Bader, Matthias. 2001. Energy Minimization Methods for Feature Displacement in Map Generalization. Steiniger, S Tefan ...
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 ...
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.
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 ...
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).
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
How about generalization?
"Simplifying and smoothing features" might help GIS Stack user Mapperz blogged about this some time ago
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 ...
Are we overcomplicating the problem? Is it simply that you want, cartographically, the lines to pass through each junction not around the junction? With that interpretation in mind, perhaps simply make the juntion points larger? If you want to actually join them in the database, buffer the junction points to sufficiently large circles and interset.
This problem is a very typical one in cartographic generalisation. Automated methods exist for that, but no implementations are available yet. Methods based on "Beams" and "Snakes" give efficient results to solve these cartographic conflicts of network data (see also the references given by scw). Here are some results of the beams algorithms on road data: ...
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") ...
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 ...
You can use an offset for one of the two routes. You find the option for each line style.
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 ...
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.
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 ...
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 ...
Read your request already at the mailing list. As none of the geeks really answered, i'm not sure if my propsal is the right one. In GRASS, there is the v.generalize function with a displacement. As far as i understood from reading a while ago, it is meant for separation of overlapping or very close lines. v.generalize input=roads_dr output=roads_dr_disp ...
I don't know of a solution, but I think the term you are looking for is "conflict resolution" - a topic of map generalization. A Google search on "map generalization conflicts" shows some interesting info - but I don't know there's much of practical use.
Only top voted, non community-wiki answers of a minimum length are eligible