Hey All,
I'm working on a sneaky-ninja way of rating sign retroreflectivity in my jurisdiction. I would like to figure out a way to make ArcPad help me do this. But it may take some outside-the-box thinking so you smarter ArcPadders out there bust out your mad skills and see if we can do this.
I got the following:
A street Centerline layer.
A point layer that contains Signposts. These posts are close to, and on either side of, the centerline layer. There are also a ton of them.
A one-to-many related table of individual SIGNS that belong to each of the signposts. Each of these signs have vector information on them that lets me know which direction they are facing with regard to North by having Azimuth values between 0-359. Signs can be facing Toward or Away From Traffic, as well as Toward or Away from the Street. So, for example, a Green Street Name sign would have four signs on its posts, with one facing each direction, separated by 90 degrees.
The eventual goal of this project is to create a polygon object of some sort based on my current GPS position that follows me around and cares about which direction I'm facing. We can determine this by running a simple bearing calculation that I already have written.
When a signpost enters my "buffer zone," I want a way to query all the related signs on the post and find the ones whose facing direction is 180 degrees from my own, +/- a few degrees. These signs' information would get loaded into forms with big, fat, simple buttons to rate them with and contain large pictures, and would get blasted up on my screen for a few seconds for my field inspector to record the ratings.
Ideally, When the signpost leaves my buffer zone, I would like the uncompleted forms to disappear, leaving room for other forms to jump up on the screen instead.
So here's where I am at the moment:
I have a feeling that ArcPad can only select one object at once. So if I was to use a method like FindNearestXY, I could, for example, select the nearest signpost that was in my buffer zone. But after that was selected, I would also want to know about other signposts that happened to be in my buffer zone.
So, I'm thinking about creating a For/Next loop that finds the NearestXY(Signpost), and adds it to a temporary list, then runs the FindNearestXY again, but ignores any results that have already been added to the list. The For/Next loop would continue to run until it returned no more results.
In a way I would hope this would be kind of like "Find Nearest," "Find 2nd Nearest," "Find 3rd Nearest," etc.
The trick here is getting the FindNearestXY to ignore already found results.
Any ideas on how we might be able to do this?