使用谷歌地图API v2,我知道myMap.setMyLocationEnabled(true);
会让我在谷歌地图上显示用户位置,但我也希望这个位置的坐标显示在谷歌地图下方。我不想用
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
因为这看起来像是一种矫枉过正。我们已经有了用户的位置(地图上的指针),现在我只需要它的坐标值。
我怎么做到的?我找不到一些属性,如myLocation.getCurrentCoordinates()
答案 0 :(得分:3)
尝试使用:
myMap.setOnMyLocationChangeListener(new OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
// TODO Auto-generated method stub
}
});
每次更改时,您都会收到该位置。如果您只是故意想要它,可以使用
Location location = myMap.getMyLocation()
答案 1 :(得分: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。
答案 2 :(得分:0)
您可以使用Google Play服务获取用户位置。 http://developer.android.com/training/location/retrieve-current.html
位置比设备上提供GPS的位置更准确。
答案 3 :(得分:0)
试试这个:
GPSTracker tracker = new GPSTracker(this);
if (tracker.canGetLocation() == false) {
tracker.showSettingsAlert();
} else {
latitude = tracker.getLatitude();
longitude = tracker.getLongitude();
}
答案 4 :(得分: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);
}
}
答案 5 :(得分:0)
太晚了,但对于新的人来说:
GoogleMap gMap;
double lat = gMap.getCameraPosition().target.latitude;
double lng = gMap.getCameraPosition().target.longitude);
float zoom = gMap.getCameraPosition().zoom);
你获得了绝对的摄像头位置。