Skip to main content

I have 2 datasets one has been loaded into a enterprise database and then exported with the object_id of the enterprise database. I am trying to spatially join this object_id back to the original data. The problem I am having is that the process of loaded and then exporting the data has changed the coordinates slightly. See images below. I am wondering if there is any way of manipulating the coordinates of the features (ie truncating some or all of the digits after the decimal) So that I can use the spatialrelator with the EQUALS test. I have some polygons that are with in polygons so buffering and using WITHIN as some other posts have suggested would not be ideal.

Polygon A

Polygon B

You can use a CoordinateRounder and specify the precision of your coordinates. You may wish to save the original geometry as an attribute so you can restore it after your spatial joins.


Another option is to use the StringFormatter set to '.0f' which will truncate the values and result in no decimals ( e.i 1158346.343 > 1158346)

I usually a comined approach gives the best results, so first check for equals and the non equals treat first by rounding and checking and if there are stil non equals then finallt use the truncating method to check for equals.

This way you maximize the quality of the matching result.

Hope this helps.


You could also turn them into points, and then use the point on point overlayer to find matches as that has a tolerance you can set.


You can use a CoordinateRounder and specify the precision of your coordinates. You may wish to save the original geometry as an attribute so you can restore it after your spatial joins.

thanks! CoordinateRounder seems to have done the trick!

 

 


Reply