Can I use only GPS to plot my current position instead of the cellular network - gps

I am working on a scheduling and routing app that uses Google Maps to create my route to the appointment location. Upon arriving at the appointment location, the app sets up a geo-fence around that location. The app is designed to send an eta text to the next appointment when I leave out of the geo-fence. Since I am likely to drive through the geo-fence due to either missing the address or looking for a parking spot, I have a timer set for 3 minutes. This requires that I stay inside of the geo-fence for 3 minutes. Once the 3 minutes elapses, then the app is set to send my eta text to the next appointment once I leave out of the fence. My location on the map appears to be determined by the triangulation of the cell towers. Here's the problem, I'm testing in a rural area with poor cell signals and limited towers. This reduces the accuracy of my actual location as determined by the triangulation of the cell towers. It is causing the icon that represents my location to bounce in and out of the geo-fence without completing the 3 minute time requirement. This is most likely due to the poor cell connection and network. Is there a way for me use only the GPS feature of the phone/Google Maps and disable the cell network from trying to position me? This doesn't happen in urban areas where there are more towers and a strong network.

Related

How to limit the frame rate in Vulkan

I know that the present mode of the swap chain can be used to sync the frame rate to the refresh rate of the screen (with VK_PRESENT_MODE_FIFO_KHR for example).
But is there a way of limiting the frame rate to a fraction of the monitor refresh rate? (eg. I want my application to run at 30 FPS instead of 60.)
In other words, is there a way of emulating what wglSwapIntervalEXT(2) does for OpenGL?
Vulkan is a low-level API. It tries to give you the tools you need to build the functionality you want.
As such, when you present an image, the API assumes that you want the image presented as soon as possible (within the restrictions of the swapchain). If you want to delay presentation, then you delay presentation. That is, you don't present the image until it's near the time to present a new image, based on your own CPU timings.

Ranging an iBeacon latency

I have been playing around with the new iBeacons in iOS 7. I have one device setup as a beacon, and the other device ranging to detect when I am near, far, immediate, etc. I'd like to know very quickly when I cross between these ranges. Is there any way to adjust the latency? I find that I have to move my device around very slowly or I will not know when I cross these thresholds.
No, you would not be able to adjust the beacon latency. As Apple says in Region Monitoring Guide:
To prevent spurious notifications, iOS does not deliver region
notifications until certain threshold conditions are met.
Specifically, the user’s location must cross the region boundary and
move away from that boundary by a minimum distance and remain at that
minimum distance for at least 20 seconds before the notifications are
reported.
Apple does not define what the latency is, it seems it's not fast enough for your application.
You can have a tradeoff - to implement beacon ranging yourself using Core Bluetooth and listen to the CBPeripheral advertisement events while scanning and range using RSSI:
centralManager:didDiscoverPeripheral:advertisementData:RSSI:
If you are using a custom beacon, such as the RadiusNetworks VirtualiBeacon VM image you can adjust the frequency of the advertisements. The flip side your app must run in the foreground opposed to CoreLocation delivering beacon events even when your app is not running.

distanceFilter property use

In the CLLocationManager class documentation, I find such explanation for the distanceFilter property:
This property is used only in conjunction with the standard location
services and is not used when monitoring significant location changes.
Can you please explain it?
In CLLocationManager, distanceFilter is used to notify changes when device has moved x meters. Default value is kCLDistanceFilterNone: all movements are reported.
From the docs
After returning a current location fix, the receiver generates update
events only when a significant change in the user’s location is
detected. For example, it might generate a new event when the device
becomes associated with a different cell tower. It does not rely on
the value in the distanceFilter property to generate events.
Start standard location services by calling the startUpdatingLocation
method. This service is most appropriate for applications that need
more fine-grained control over the delivery of location events.
Specifically, it takes into account the values in the desiredAccuracy
and distanceFilter property to determine when to deliver new events.
The precision of the standard location services are needed by
navigation applications or any application where high-precision
location data or a regular stream of updates is required. However,
these services typically require the location-tracking hardware to be
enabled for longer periods of time, which can result in higher power
usage.
That is why distanceFilter is used only in conjunction with the standard location services and is not used when monitoring significant location changes eg. desiredAccuracy or heading info.
This is because generally it is not really useful to know that a person has moved x meters. However, it is very valuable to know that a person has moved x meters in y heading with z accuracy.
Standard Location Changes: The regular GPS module is used. Battery intensive. If locationManager is your instance of CLLocationManager class start the service as follows
[locationManager startUpdatingLocation];
Significant Location Changes: Whenever the radio tower changes. Better for battery. Apple does not say that in the official documentation that is upon changes of radio towers but apparently that is what was said by Apple when the new feature came out.
[locationManager startMonitoringSignificantLocationChanges];
The property distanceFilter is disregarded by CLLocationManagerif you subscribe to significant location changes.

startMonitoringForRegion and iOS5: is accuracy better compared to iOS4?

Can this method use background GPS for this operation ?
I remember that on iOS4, the method was not very accurate (based on cell location)...
Any detailled information available ?
Short answer : No, but....
Long answer : Region monitoring works on cell+wifi analyzing by default , but by specifying a bigger radius , your app gets a callback (even if it's not suspended at the moment).
From my experience , you can use region monitoring just to cross a specific boundaries , and after entering a region you can "boost" location accuracy by using startUpdatingLocation + setting desired accuracy.
note: you should enter your code in application:didfinishLaunchingWithOptions as well , for the case where your app is not running, and of course stop updating location when crossing a boundary/recognizing an event that should return your app to previous "region monitoring" state, to conserve battery power.

Can an iPhone 3.0 SDK based app continue with data processing while answering a phone call?

I always thought that once I choose to receive a phone call my aplication is shut down.
Now I hear of some SDK 3 based application that keeps sending location data while a phone call is being answered?
Is it possible? (Not a jail broken iPhone)
How?
When a call is in progress and one or the two calling parties are being carried in moving transport the system has to inform the network through the mast or antenna that the person or device is moving from one cell to another and then the system can switch the call in progress to the next cell being approached in the direction of travel. When a more direct or non-cell network is in use then the antenna has to send or receive the signal sometimes at different horizontal angles to a series of geographical positions and if necessary pass the call to a later antenna. Fast moving transport sometimes beats the system. In the situation you describe the location could be sent because the phone user has selected a 'send my position' or 'position locator' facility on their phone or it is a phone for officials, officers or children who may be at risk.