I'd just say collect the minimum and store it for the minimal amount of time necessary to fulfill your target use cases. I think there's a course-grained way to get location but how fine does your app need?