我上次知道的位置没有更新,但googlemap.setMyLocationEnable(true)
我的位置正在更新。有人可以帮忙吗?这是我的代码:
private void setUpMap() {
if(googlemap == null) {
googlemap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
if(googlemap != null) {
googlemap.setMyLocationEnabled(true);
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
String provider = lm.getBestProvider(new Criteria(), true);
if (provider == null){
onProviderDisabled(provider);
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
Location loc = lm.getLastKnownLocation(provider);
if (loc != null) {
onLocationChanged(loc);
}
googlemap.setOnMapLongClickListener(onLongClickMapSettings());
}
}
}
private OnMapLongClickListener onLongClickMapSettings() {
// TODO Auto-generated method stub
return new OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng arg0) {
// TODO Auto-generated method stub
Log.i(arg0.toString(), "User long clicked");
}
};
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
LatLng latlng = new LatLng(location.getLatitude(), location.getLongitude());
googlemap.moveCamera(CameraUpdateFactory.newLatLng(latlng));
googlemap.animateCamera(CameraUpdateFactory.zoomTo(15));
Marker ME = googlemap.addMarker(new MarkerOptions()
.position(latlng)
.title("Current Location(You)")
.snippet("Current")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.user_marker)));
}
答案 0 :(得分:1)
我认为你在Android上混合了使用谷歌地图的新旧方式。
如果您使用新方法(推荐使用v2),则不必实例化LocationManager,然后请求更新位置。
请在官方文档中查看如何以正确方式执行操作:https://developer.android.com/training/location/receive-location-updates.html
您只需实施LocationListener
,当然,当您创建LocationRequest
对象时,请根据您的需要设置正确的参数。
如果您没有使用适用于Android的API的v2版本,建议您从https://developer.android.com/google/play-services/location.html开始执行此操作。