I am currently having 2 shapefiles of a roadnetwork. One of them has the best network (lines intersecting correctly etc.) and the other has some attribute info I want. I have no similar attributes to join the two shapefiles and the road networks are slightly different from each other. I therefore cannot use the select by location method, because they are either are not intersecting completely and using a search distance will select other road parts as well (to illustrate my idea: I added a new variable in the blue road network and want to add a 'Yes' for every road segment that more or less overlaps the red road network). Is there a solution for this problem? Maybe it is possible to make the two road segment overlap 100% in some way? I work in ArcMap, but qgis is also possible.

I have added a picture to illustrate the slight difference between both networks:enter image description here

  • Duplicate of gis.stackexchange.com/questions/122934
    – Chris W
    Commented Dec 15, 2014 at 18:55
  • 1
    ...not really. OP is not interested in snapping, but in transferring field values. Snapping may be a useful first step, but I wouldn't say this is a duplicate.
    – mr.adam
    Commented Dec 15, 2014 at 20:20
  • @mr.adam Actually, the question title specifically asks how to snap, as does the final 'question' in the body. You're correct this might be the first step to a second question, since asker has described the context of what they're doing. However with the GIS.SE concept of one question per question, that would best be explored as a different post or having asked how to transfer the attributes in the first place and merely mentioning the idea of snapping them as a possible route in the question body. As written, it is a duplicate in my opinion, and altering it would invalidate snap answers.
    – Chris W
    Commented Dec 15, 2014 at 22:03

3 Answers 3


ArcGIS Snap tool will do this for you (standard and up license level).

You need to fill in what type of snapping you are looking for in the Type column. Also the Distance of the snapping. Also keep in mind this is a tool with no outputs, so make copies of your input data before trying.


What I usually do

  1. Create point layer from midpoints of network segments.
  2. Spatial join of points to CLOSEST info line, define distance field name
  3. Transfer attributes back to segments, where you think they are close enough

You could combine the select by location query with a comparison of line length. I'm not really sure how feasible it is, but you could cycle through all of the features in the good geometry shp, select each one and then do a select by location on the other layer. Then, for all of the selected features in the bad geometry layer, compare the value in the ShapeLength field with the corresponding value in the single selected good geometry. If it's close enough, transfer the attributes over.

Be sure to project the features to the same projected coordinate system first.

Now that I think about it, your good data is probably split at each intersecting like most road data, which would make the above solution completely irrelevant. Maybe you could dissolve that dataset by street name or something beforehand.

You may want to use the Align to Shape tool in the Advanced Editing toolbar (available at Basic level) if you have the patience to align each road to make a much higher quality select by location process.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.