Kevin, you say "Since I may receive images without gps data, my solution needs to account for that and I cannot use this approach".
Do you mean simply that you can't use this function to detect whether gps data is available? That's not so. You absolutely can.
Just test for whether those struct keys exist in the result, using structKeyExists(imgobj. GetExifMetadata(),"GPS Latitude"). If it's true, there's gps data.
Or is there still some reason you feel this won't help? Please help us help you.
Kevin and I spoke offline. He's clarified that what he means is that he now realizes the problem is indeed that his images don't HAVE the GPS data, and when he says "so this solution won't work for me", he means he won't be able to do the sort of processing of images he'd hoped to do. It's clear now that his problem was not the inability of CF or this function to work to GET any GPS data, which is how it originally read (to me, at least).
And perhaps someone will get value from all the other info shared in the thread, from all of us. But it seems otherwise we can regard this as case closed.