Is there any way to get location of the iPhone without demanding location services from the user? It should not be really accurate.
edit: I have no problem with implementation of location services. I try to find an alternative way
No this is not possible.
Apple has made location service abstract so you can't really see which technic is used. Thus if the user turns off the location service you can't get the location any other way.
There is however the option to check the user IP and get a very rough location.
Related
In a hurry I put a wrong location in my cloud Firestore setup. I am not allowed to change it. Currently I'm staying in Singapore but the location I have put is US. Can someone help me what should I do? What will happen if I continue with that location for my database.
Thanks
To reduce latency you should take a location near you or more precise your users. Unfortunately you can't change the location of a firestore database once selected. What you can do is to create a new one and set the location of that one near you and your users. Just don't forget to replicate that in you firebase configuration in your app.
I am trying to get geolocation in my Xamarin Android app using LocationManager.
When i used GPSProvider as the location provider, OnLocationChanged didnt execute. Then i tried NetworkProvider and OnLocationChanged did executed and i could find the geo location.
What is the difference between GPSProvider and NetworkProvider and which will be more reliable?
GPS might not have given you any location, because when you are indoors, the signal can go from very bad to unavailable. Use FusedLocation as it manages the providers and will use the one that gives the best location at any given time. If you are indoors, it will use the Networkprovider. If you are outdoors it will use the GPSProvider
If you don't wanna use FusedLocation (needs google play configuration) you can try GetBestProvider then the device will select the best provider for a criteria
Documentation and code sample here
TL;DR:
My objective: Try all forms of getting a location and then choose the most accurate one, (try get a location for a minute then time out).
I'm a little confused about where it gets the location from, is it GPS? Cellular? or a mix of both depending on toolkit?
While getting location on Android I used both and then choose which provider based on accuracy. I do not see anything similar for iOS.
I'm using CLLocationManager which is showing good accuracy but I'm not sure where the location is from.
On iOS, location manager is built more intelligently. Relying on your configuration, it either uses GPS or WiFi/cell radios, as described in the CLLocationManager documentation:
For the services you use, configure any properties associated with
that service accurately. Core Location manages power aggressively by
turning off hardware when it is not needed. For example, setting the
desired accuracy for location events to one kilometer gives the
location manager the flexibility to turn off GPS hardware and rely
solely on the WiFi or cell radios, which can lead to significant power
savings.
For more information, read
CLLocationManager documentation.
EDIT
And, If you want the most accurate location, you should put kCLLocationAccuracyBestForNavigation for location manager's desiredAccuracy property.
I've been looking into the Foursquare API on iOS (through das-quadrat). I'd like to figure out if a user is at a specific location. I know how to find it and I can actually get it. That works.
How can I now tell if the user is actually close enough to the location to consider his close proximity as a check-in (I'm not interested in actually checking him in the Foursquare way)? It's just that I want to know that a user is at a venue of a category I'm monitoring. I know that I can just calculate the distance between the user's location and the venue's location and consider every distance less than, say, 15 meters a check-in but I was wondering if there's is a more elegant solution, maybe even an API endpoint that I'm just missing.
I would guess that the real time API is best suited: https://developer.foursquare.com/overview/realtime
Allows you to register for notifications, thus Foursquare does the heavy lifting for you.
I want to use CLLocationManager to get the current user location using GPS antenna, not the cellular network. How can I ensure that?
Your choices is either the standard location service (e.g. startUpdatingLocation, for which you can specify the desiredAccuracy), or the low-power significant change service (e.g., startMonitoringSignificantLocationChanges). But you generally don't specify location services based upon hardware, but rather on the basis of your app's functional needs. Use the standard service if you need an accurate location, and try using the significant change service if you don't need the same level of precision.
See the Location Awareness Guide for more information.