Damage to GPS buggy on Windows Phone 8 platform

We are evaluating WP8 for one of our applications. It uses GPS to track a contractor working in the field. We see Nokia Lumia as a very good hardware platform, but run into a software stack problem.

a. We tried the geolocation function of this platform along with MovementThreshold set to 100, as well as the accuracy set to HIGH. b. Nevertheless, we see an error in the data (even if we move about a meter, we get an interrupt and the location is too far from the actual one). After searching the Internet and documents, we found that β€œon WP8, GPS satellite locations will only be available if the location information cannot be obtained from the WiFi / cellular network.

This kills accurate object tracking. Is there a way (for example, in android we can choose a provider), we can force Sat. GPS based?

I apologize if this is not a duplicate.

Any help would be appreciated.

PS: We have already applied the formula for calculating the difference between points and filtering with a threshold, but not a very good approach. Yours faithfully...

+7
windows-phone windows-phone-7 gps windows-phone-8
source share
2 answers

There are 2 classes Geocoordinate 1 Geo * C * oordinate, which is included in the System.Device.Location namespace 2 Geo * c * oordinate, which falls under the Windows.Devices.Geolocation namespace

if you use a Geolocator in your tracking code, then the coordinate you get is Geocoordinate, since they are in the same namespace as specified in 2, Windows.Devices.Geolocation, and if you use geocoordinatewatcher, this gives you GeoCoordinate, as they are part of 1 system. Device.Location.

If you use a Geocoordinatewatcher over code, it works fine, but if you use a Geolocator, then the HorizontalAccuracy property will not be available to you, instead you need to use the Accuracy property.

private const double ACCURACY_THRESHOLD = 20; private void LocationChanged(Geocoordinate coordinate) { if (coordinate.Accuracy < ACCURACY_THRESHOLD) { // use point } else { // ignore and wait for better accuracy } } 

or what you can do is convert Geocoordinate to GeoCoordinate and use the code mentioned in the answer above.

+6
source share

You cannot force tracking satellites, but by selecting high accuracy, they will be turned on. Then you can evaluate the accuracy of the resulting location and not use those that are inaccurate. Accuracy is part of the GeoCoordinate class, in meters.

 private const double ACCURACY_THRESHOLD = 20; private void LocationChanged(GeoCoordinate coordinate) { if (coordinate.HorizontalAccuracy < ACCURACY_THRESHOLD) { // use point } else { // ignore and wait for better accuracy } } 

See http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.horizontalaccuracy.aspx

+5
source share

All Articles