If the user allows location permissions, apps can collect your GPS coordinates accurate to a few feet. Many companies gather wifi router locations when people use their apps, or buy that information from others, so any users of those routers can be located precisely. Google, Skyhook and Wigle are just three examples of companies that keep databases of millions of router locations. However, those techniques don’t tell where the download occurred, but they can tell where the app is used after it’s installed. The Google and Apple app stores would know the download location. I don’t know if they share that with developers. That’s just off the top of my head, I am sure there are other ways I can’t even imagine.