가능한 가장 짧은 시간에 가장 정확한 기기 위치를 결정하려고합니다.Android에서 GPS 또는 네트워크에서 가장 정확한 기기 위치를 얻으려고 시도합니다.
데이터를 geopoint로 저장하고 mapview에 표시합니다.
내 장치에서 GPS를 마지막으로 활성화하고 위치 잠금을 설정하면 나는 지금 어디에서 80 마일 떨어진 곳이었습니다.
위치 관리자 설정과 위치 수신기가 있습니다.
이렇게하면 NULL이됩니다.
myLocOverlay = new MyLocationOverlay(this, mapView);
GeoPoint test = myLocOverlay.getMyLocation();
그러나 다음 몇 줄에;
myLocOverlay.enableMyLocation();
mapView.getOverlays().add(myLocOverlay);
이렇게하면지도의 오버레이에 현재 위치가 표시됩니다. 그것은 네트워크 공급자를 사용하고 있지만 GPS 픽스를 얻으려고 시도하고 있습니다 (실내에 있기 때문에 최상층 근처에있을 수 없습니다).
이렇게 지오 포인트를 구성하면;
if(lm.getLastKnownLocation("gps") != null)
{
test = new GeoPoint(
(int) (lm.getLastKnownLocation("gps").getLatitude() * 1E6),
(int) (lm.getLastKnownLocation("gps").getLongitude() * 1E6));
}
else
{
if(lm.getLastKnownLocation("network") != null)
{
test = new GeoPoint(
(int) (lm.getLastKnownLocation("network").getLatitude() * 1E6),
(int) (lm.getLastKnownLocation("network").getLongitude() * 1E6));
}
//bad things
}
그러면 혼란스러운 결과가 나옵니다. 장치 GPS 공급자를 사용하지 않으면 코드가 네트워크 공급자로 이동하고 나에게 상당히 정확한 결과를 제공합니다. GPS 제공 업체를 사용하도록 설정 한 경우 지포 포인트가 기기가 GPS 잠금 장치를 갖도록 허용 한 마지막 장소로 돌아옵니다.
나는 위의 결과를 피하기를 원한다.
GeoPoint test = myLocOverlay.getMyLocation();
그러나 위에서 말했듯이 나는 그저 NULL을 얻습니다.
GPS와 네트워크 모두에서 지포를 얻은 다음 GPS 위치를 1 마일 떨어진 곳에서 비교하면 GPS 결과가 무시됩니다. 조금만 붙어 있습니다. getMyLocation()이 작동하지 않아서 myLocOverlay가 MapView에 표시하는 GeoPoint를 반환하지 않아야하나요?
주'* 볼 수 있습니다. –