P.S. No idea about Android.
P.S. No idea about Android.
- Geocode down to the lowest applicable level of IP address
- grab it from the photo metadata
- Piggyback off of similarities to other people obtaining similar photos or activity
- grab it from other database sources that do have your location
- correlate it to your interactions with other hardware/infrastructure with known locations
- transitively deduce it from your friends and acquaintances who share their location and tag themselves and reply to your stories/photos
Theoretically you could try to train some neural nets on images themselves. Geoguessr.com is a fun game website where you can try to do so as a human, and you can usually get pretty damn close. Images themselves leak a tonne of information on time/place: clothing styles, fonts and languages on signs, shadows, light colour, fauna/flora, asphault + stone types, arichtecture and design quirks. In many ways the neural net might even have some advantages over humans, because not many humans memorise the thousands of minutae: eastern USSR uses this particular kind of road barrier and reflector type and this kind of font on its road signs.
But aside from a research activity, i imagine facebook already has the data it needs most of the time...
The images you upload may have location data on them.
If you're using a wireless hotspot then your location is correlated to anyone who also used it while sharing GPS data.
And so on.
That's a clever one I hadn't thought about. I guess for a service like Facebook/Instagram/Google it can work decently well given the scale/adoption.