To be more specific I'm trying to plan a project for a potential client the requires Users to upload an Esri file to a web portal showing sections of the forest they want to harvest. The client has a list of requirements the Esri files must meet and wants to be able to reject them if they don't meet said requirements before employees waste their time validating basic requirements. I'm not sure if this is possible or the way I should go about tackling it.
I want to be able to do this with a web language, preferably php. But if not possible I'm open to other suggestions.
I'm not very familiar with Esri files.
Validation Requirements:
- Invalid Geometry: No features whose geometry is empty, nothing, not simple, or empty envelopes are permitted.
- No multipart lines
- No multipart polygons
- No non-linear segments
- Polyline or path closes on self, they don't intersect or overlap
- polygons must be thicker than a certain thickness
- Cutbacks: Identifies segments where the angle between segments in a polygon or polyline is below a specified minimum value. Spike 25° Exceptions are made if the cutback is not a digitizing error.
- no polylines less than 20 meters
- Find Dangles: No polylines with nodes that are within a tolerance but not connected to other features in the database topology are permitted.
- Unnecessary Nodes: No features that share a node and have identical attributes in editable fields are permitted.
- Unnecessary Polygon Boundaries: No adjacent polygon features that share a boundary and have identical attributes in editable fields are permitted
If anyone is aware of a software library or tool I can use to do this automatically, it would be great. I don't need any type of graphic interface this will be run in the backend of this web portal. If there isn't a good tool or library with these kinds of checks built in ( this seems much more likely ) I'm looking for a way I can process Esri files so that I can write my own algorithms for detecting these things, a good resource or example of this kind of validation would be great, but I can't find anything myself.
I just need to know the best way I can do this without human intervention, so I know how to tackle it and get an estimate of how long it will take.