2013-11-26 116 views
3

使用谷歌地圖API v2,我知道myMap.setMyLocationEnabled(true);將讓我顯示谷歌地圖上的用戶位置,但我也希望此位置的座標顯示在谷歌地圖下方。我不想使用如何獲取用戶當前位置座標使用谷歌地圖API而不是位置管理器

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 

因爲這看起來像一個矯枉過正。我們已經有了用戶的位置(在地圖上指向的針),現在我只需要它的座標值。 我如何得到?我無法找到某些屬性,如myLocation.getCurrentCoordinates()

+0

過度殺傷力有什麼問題?這是確保某些東西可行的一種手段。 –

+0

@AleksanderLidtke有時候,矯枉過正會佔用更多的資源/時間,這可能會對移動應用程序造成輕微的傷害,因爲這些已經很少了。 –

回答

1

我結束了使用LocationClient讓我的當前位置,並且依賴於getLastLocation()

private LocationClient locationClient; 
private Location myLocation = null; 
locationClient = new LocationClient(this, this, this); 
locationClient.connect(); 

    @Override 
public void onConnected(Bundle arg0) { 
    myLocation = locationClient.getLastLocation(); 
} 

這可能並不總是正確的,但我只需要它曾經並不想使用locationChangedListeners。

3

嘗試使用:

myMap.setOnMyLocationChangeListener(new OnMyLocationChangeListener() { 

      @Override 
      public void onMyLocationChange(Location location) { 
       // TODO Auto-generated method stub 

      } 
     }); 

您將收到它改變了位置每次。如果您只想要它,您可以使用

Location location = myMap.getMyLocation() 
+1

'Location location = myMap.getMyLocation()'已被棄用,不應該被使用,至於OnMyLocationChangeListener,我可能會使用那個 –

+1

舒爾,但ActivityGroup已被棄用,因爲Android 2.3 ...仍然存在 –

+0

我用而不是locationClient,myLocation = locationClient.getLastLocation(); –

0

試試這個太:

GPSTracker tracker = new GPSTracker(this); 
    if (tracker.canGetLocation() == false) { 
     tracker.showSettingsAlert(); 
    } else { 
     latitude = tracker.getLatitude(); 
     longitude = tracker.getLongitude(); 
    } 
0
//this might help u out 

    enter code here 
ar initialLocation; 
var siberia = new google.maps.LatLng(60, 105); 
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687); 
var browserSupportFlag = new Boolean(); 

function initialize() { 
    var myOptions = { 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions); 

    // Try W3C Geolocation (Preferred) 
    if(navigator.geolocation) { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    } 
    // Browser doesn't support Geolocation 
    else { 
    browserSupportFlag = false; 
    handleNoGeolocation(browserSupportFlag); 
    } 

    function handleNoGeolocation(errorFlag) { 
    if (errorFlag == true) { 
     alert("Geolocation service failed."); 
     initialLocation = newyork; 
    } else { 
     alert("Your browser doesn't support geolocation. We've placed you in Siberia."); 
     initialLocation = siberia; 
    } 
    map.setCenter(initialLocation); 
    } 
} 
+0

@ user376060對不起,這不適用於Android –

0

爲時已晚,但對於新的位置:

GoogleMap gMap; 

double lat = gMap.getCameraPosition().target.latitude; 

double lng = gMap.getCameraPosition().target.longitude); 

float zoom = gMap.getCameraPosition().zoom); 

你得到絕對的相機位置。

相關問題