标记位置不会更新

时间:2013-12-24 11:03:55

标签: android google-maps-markers

我编写此代码以尝试更新标记位置。该职位是我目前的职位。 但是不动!它只移动小蓝球。

这是重要的代码:

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);
        }
    }
}

我希望得到你的帮助! :)

1 个答案:

答案 0 :(得分:1)

1-创建一个警报管理器。

2-计划更新的时间间隔。

3-在广播接收器的onrecieve方法中发送广播和检查位置。

相应地设置4个标记。