2017-05-20 3 views
0

그래서이 문제가 발생합니다 - 아래 코드는 내 앱에있는 클래스의 일부입니다. 이제이 클래스는 내 위치에 대한 정보를 제공합니다. 항상 내가 있어야하는 곳으로부터 항상 100 미터 떨어진 곳에 있습니다. 왜 이런 일이 일어나는 걸까요? 나는 "정밀도"를 요구하지 않기 때문일까?Xamarin, Android : 왜 좌표가 잘못 되었습니까?

감사합니다 :)

공공 무효 OnLocationChanged (위치 위치) {

_currentLocation = location; 
    {   
     // this is needed for my mocked location 
     GlobalElapsedRealTime = _currentLocation.ElapsedRealtimeNanos; 

     GlobalLatitude = _currentLocation.Latitude; 
     GlobalLongitude = _currentLocation.Longitude; 

     // Log.Debug("2", "Your Real Location is at " + GlobalLongitude + " // " + GlobalLatitude); 

    } 
} 

public void InitializeLocationManager() 
{ 
    _locationManager = ctxt.GetSystemService(Context.LocationService) as LocationManager; 

    if (_locationManager.AllProviders.Contains(LocationManager.NetworkProvider) 
     && _locationManager.IsProviderEnabled(LocationManager.NetworkProvider)) 
    { 
     _locationProvider = LocationManager.NetworkProvider; 
     Log.Debug("1", "Location Manager has been initialized!"); 
    } 
    else 
    { 
     _locationProvider = String.Empty; 
    } 
} 

public void StartLocationUpdates() 
{ 
    _locationManager.RequestLocationUpdates(_locationProvider, 0, 0, this); 


} 
+0

당신은 같은 문제가 있는지 확인 장치에 다른 GPS 응용 프로그램을 확인했다? – Jason

+0

나는 그것을 확실하게했다. 그것은 아무런 문제가 없다. 또한 항상 같은 "잘못된"장소로 나를 놓습니다 ...? – user8013509

답변

0

당신이 LocationManager.NetworkProvider을 사용하는 때문입니다. 이것은 셀 타워 및 알려진 WiFi 핫스팟을 기반으로 사용자의 위치를 ​​추측하며 특히 정확하지 않습니다. 수백 미터가 나가는 것은 옳은 소리입니다. 어느 도시 또는 교외 지역에서 근무하고 있는지 파악하는 데 유용하지만 더 정확한 추적은 아닙니다.

LocationManager.GPSProvider을 사용해보고 ACCESS_FINE_LOCATION 권한이 사용 설정되어 있는지 확인하십시오. 수정 사항을 얻는 데 약간 시간이 걸릴 수 있지만 훨씬 더 정확합니다. 얼마나 정확한지는 달리는 장치에 달려 있습니다 (전화 GPS는 꽤 좋을 수는 있지만 일반적으로 칩은 가격에 따라 선택되므로 완전히 정확하지는 않습니다). 그리고 고지를 얼마나 많이 얻을 수 있습니까? 예를 들어 고층 건물이 간섭을 일으킬 수 있습니다.

자세한 내용은 :

https://developer.android.com/reference/android/location/LocationManager.html#GPS_PROVIDER

+0

예! 어떻게 내가 그것을 감독 할 수 있겠습니까! 정말 고마워 ! – user8013509