We often do inventories of assets in the field where many times there is a need to include several photographs of the asset, for example “From top”, “From bottom”, “Overview” etc. The current way of just adding multiple photos to the feature without being able to indicate what the photo depicts isn’t enough for us.
What I would like to be able to do is to take a photo and then specify which field it belongs to. Is there a way to set up Collector to accomplish this?
No, there is no way to configure collector to do this that I am currently aware of. I've had the same complaint for about a year and a half now.
This is pure speculation but I would expect that the problem would lie with the way Collector implements the AddAttachment REST Endpoint. When you add an attachment using that endpoint, the name of that attachment is derived from the filename on the device. So when you take a picture on your device and your device autonames it something like Photo1.jpg, that becomes the name of the attachment which is what you see the attachment hyperlinks in Collector. Esri did not add a step in between the time you take the photo and the time the AddAttachment call is made to afford you the opportunity to rename the photo you just took. Theoretically, if this was done you could have attachments with custom names and you might then be able to actually understand what a photo is going to be before tapping on the attachment link in Collector.
That said, I would assume that Esri had a good reason for not implementing what seems like a no-brainer functionality. One possible reason might be that the iOS SDK may now allow you to rename photos on the device. I don't know that to be the case but if it were, that would leave them without the ability to actually implement that functionality on iOS and if they couldn't do it on iOS, they might not do it on Android even if they could simply because they wanted to keep the application's capabilities identical on both platforms.
You may want to take a look at Survey123. You can specify multiple image fields for your form. The name you specify for the field will be carried over to the images you collect. For example, here is a screen shot of the Survey123 form (Excel is used to create the forms):
When a user collects images in the field, the field name will be appended to the image name. Here is an example of how the image name appears in a web map pop-up:
One way we've tackled this in Collector is to use related tables. For a main feature, have related tables for "top", "left", "right", etc., and attach your images from the different perspectives to the corresponding feature in the related tables. It is slightly more cumbersome to add the photos this way, as you have to move between related items, rather than having it all in the same place, but it works.
Actually, I think if we were to "think outside of the box" it is actually possible to do what you would lke.
It will take a little bit of creativity, but essentially you will create a related table; lets call it photo position, to the asset feature class. This related table will contain a field for the asset photo description; enable a domain that contains the choices you commonly refer to “From top”, “From bottom”, “Overview” etc., and maybe a comment field.
Then the trick is to enable attachments for your related table' which gives you control over which photos are linked to which assets.
There you go, you can now relate your photos based on your categorization per asset. The post processing will take a join or two to assign the photo the correct name, but it is possible.
I use this method for a lot of our data collection and the collector app does support attachments for related tables; we use iOS devices, but it is supported within Andriod also. PLEASE keep in mind that currently user created relationships are based off of Global IDs; this is where you will need to be creative.
Let me know if you need more information.