[ 
https://issues.apache.org/jira/browse/CB-12251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15751869#comment-15751869
 ] 

Anshu Raj commented on CB-12251:
--------------------------------

Thanks Kerri for your response. 

Here is a code snippet which we have used on a button click. This gives user's 
current Latitude and Logitude and using Google Or ArcGIS api we reverse Geocode 
to get the address. However I have tested it and we don't get the current 
address rather the address where I visited last. Seems like Geolocation API is 
not providing the current latitude and longitude immediately. 

Just so you know I have tried the combination all the attributes - 
EnableAccuracy, maximumage etc and nothing works. Again this issue is only on 
IOS Iphone App and our user will be on move constantly. Tried both- 
GetCurrentLocation and GetWatchPosition. 

                var accLatLong = {};

navigator.geolocation.getAccurateCurrentPosition = function 
(geolocationSuccess, geolocationError, geoprogress, options) {
    var lastCheckedPosition,
        locationEventCount = 0,
        watchID,
        timerID;

    options = options || {};

    var checkLocation = function (position) {

        lastCheckedPosition = position;
        locationEventCount = locationEventCount + 1;
        // We ignore the first event unless it's the only one received because 
some devices seem to send a cached
        // location even when maxaimumAge is set to zero
        if ((position.coords.accuracy <= options.desiredAccuracy) && 
(locationEventCount > 1)) {
            clearTimeout(timerID);
            navigator.geolocation.clearWatch(watchID);
            foundPosition(position);
        } else {
            geoprogress(position);
        }
    };

    var stopTrying = function () {
        navigator.geolocation.clearWatch(watchID);
        foundPosition(lastCheckedPosition);
    };

    var onError = function (error) {
        clearTimeout(timerID);
        navigator.geolocation.clearWatch(watchID);
        geolocationError(error);
   };

    var foundPosition = function (position) {
        geolocationSuccess(position);
        debugger
        accLatLong = position;
        //{
        //    "Latitude": position.coords.latitude,
        //    "Longitude": position.coords.longitude,
        //}
    };

    if (!options.maxWait) options.maxWait = 10000; // Default 10 seconds
    if (!options.desiredAccuracy) options.desiredAccuracy = 20; // Default 20 
meters
    if (!options.timeout) options.timeout = options.maxWait; // Default to 
maxWait

    options.maximumAge = 0; // Force current locations only
    options.enableHighAccuracy = true; // Force high accuracy (otherwise, why 
are you using this function?)

    watchID = navigator.geolocation.watchPosition(checkLocation, onError, 
options);
    timerID = setTimeout(stopTrying, options.maxWait); // Set a timeout that 
will abandon the location loop
};


Your help will be greatly appreciated. 

> on IOS device Corodova Geolocation GetWatchPosition not giving current 
> location
> -------------------------------------------------------------------------------
>
>                 Key: CB-12251
>                 URL: https://issues.apache.org/jira/browse/CB-12251
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CordovaJS, iOS
>    Affects Versions: 4.1.1
>         Environment: IPhone, IOS 
>            Reporter: Anshu Raj
>            Priority: Critical
>              Labels: features, geolocation, mydistrict
>
> Feature: We have created a Mobile App using PhoneGap and Corodova Plugin to 
> get a constantly moving user's current location. As soon as he stops, he will 
> perform an action in our App which will send his current location and we 
> convert it into Address using reverse geocoding. We then show the history of 
> user's visits. 
> We are using GetWatchPosition and GetCurrentLocation to implement above 
> feature. 
> Issue: We are not getting user's current Latitude and Longitude rather we get 
> their last Latitude and Longitude where he last visited. Hence user's visits 
> is wrongly registered based on where he was at that point of time. Somewhere 
> the API is not sending us the latest Latitude and Longitude.
> Above is working fine in Android and we are getting updated Latitude and 
> Longitude
> Please help!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to