我编写此代码以尝试更新标记位置。该职位是我目前的职位。 但是不动!它只移动小蓝球。
这是重要的代码:
private LocationListener mLocationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.d(TAG_LOG, "In onLocationChanged(...)");
showMapFragment();
}
};
/*Metodo che si occupa di mostrare la mappa nella UI che invochiamo quando
la location è disponibile.*/
private void showMapFragment() {
Log.d(TAG_LOG, "In showMapFragment()");
Fragment existingMapFragment = getSupportFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);
if (existingMapFragment == null && mCurrentLocation != null) {
Log.d(TAG_LOG, "Nell'if di showMapFragment");
//Creo il map fragment
SupportMapFragment mapFragment = new CallbackMapFragment();
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.anchor_point, mapFragment, MAP_FRAGMENT_TAG);
fragmentTransaction.commit();
} else {
Log.d(TAG_LOG, "Nell'else di showMapFragment");
//Otteniamo il riferimento alla GoogleMap
mGoogleMap = ((SupportMapFragment) existingMapFragment).getMap();
mGoogleMap.setMyLocationEnabled(true);
//Impostiamo il tipo di mappa
synchMapType();
//Creiamo ed aggiungiramo il marker
final LatLng newLatLng = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude());
if(mHereMarker == null) {
Log.d(TAG_LOG, "Creo il marker relativo alla mia posizione.");
final MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(newLatLng).title("My Position")
.snippet("[" + newLatLng.latitude + "," + newLatLng.longitude + "]");
mHereMarker = mGoogleMap.addMarker(markerOptions);
}
else {
Log.d(TAG_LOG, "Aggiorno la posizione del marker..");
mHereMarker.setPosition(newLatLng);
}
}
}
我希望得到你的帮助! :)
答案 0 :(得分:1)
1-创建一个警报管理器。
2-计划更新的时间间隔。
3-在广播接收器的onrecieve方法中发送广播和检查位置。
相应地设置4个标记。