I have a line and point layer. Points are not exactly intersect with line layer. With respect to existing point, how to find the new points which are exactly on the line ? consider buffer distance is provided.
You can use the near tool to calculate the perpendicular points on a line :
Calculate the distance from points to lines with the Near tool :
- input features: Points
- near features: Lines
- check "location option" to get near_x and near_y
Calculate an event layer from near_x and near_y
This gives a new point layer with the same id's as the input points, all laying on the line object. You can then use a select between to filter the distance, if you like.
You can use the Linear referencing tools to quantify that distance in the other way round, to get all distances possible for all the points you have. You will be free to choose which distance will then suits you best. Here are the main steps from what I recall :
- Add a unique Id to each line.
- Add a unique Id to each point
- Use the tool "Create a route" for your linear entities (they will become Polyline M entities)
- Use the tool : "Locate Features Along Routes" with you newly created routes and your points layer.
In the produced table, you will have a Distance field with the point ID and the line ID. All points located on the line will therefore have a 0 in this field, whereas far points will have some value. You just need to join with the unique ID from each point with this table to quantify the distance for each point and map which ones are on the line for example.
The tools will also allow you to recreate the point on the route via a table where the coordinates on the route will appear. Useful when you need to stick not-snapped points on a nearby line.
Please comment my answer if you need more details or if you're stuck.
- See tutorial here for using those tools.