2016-03-15 3 views
-1

Мне нужно загрузить только два маркера на google map, но загружаются несколько маркеров.Загрузите только два маркера на карте Google в Android

Ниже мой код:

public class MainActivity extends FragmentActivity { 
     GoogleMap map; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Getting reference to SupportMapFragment of the activity_main 
     SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 

     // Getting Map for the SupportMapFragment 
     map = fm.getMap(); 

     if (map != null) { 

      // Enable MyLocation Button in the Map 
      if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != 
                PackageManager.PERMISSION_GRANTED 
                && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != 
                PackageManager.PERMISSION_GRANTED) { 
       return; 
      } 
      map.setMyLocationEnabled(true); 

      //It is used to zoom when google first loading on your device. 
      map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
      map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(23.0310791, 72.5954376), 11)); 
      map.setMyLocationEnabled(true); 
      map.animateCamera(CameraUpdateFactory.zoomTo(11));    
     } 

     map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
      @Override 
      public void onMapClick(LatLng latLng) { 

       // Creating a marker 
       MarkerOptions markerOptions = new MarkerOptions(); 

       // Setting the position for the marker 
       markerOptions.position(latLng); 

       // Placing a marker on the touched position 
       map.addMarker(markerOptions); 

      } 
     }); 
    } 
} 

я реализовал google map API загрузить карту и выше, что я пытаюсь загрузить маркеры. Он загружает маркеры в соответствии с предоставленным lat и long, но мне нужно отобразить только два маркера на моей карте google.

+1

вы добавили маркер, когда кто-либо нажимает на карту. так как много раз, когда вы нажмете на него, количество маркеров будет помещено на карту. так что вы хотите удалить предыдущий маркер при добавлении нового? –

+0

Отметьте этот ответ, если он сработает для вас http://stackoverflow.com/a/35770711/3514144 –

ответ

1

Что я думаю, положил 2 маркера на карту и продолжал менять их положение на каждой карте. Нажмите Важно: установите новое положение на старый маркер.

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
     boolean swap; 
     Marker firstMarker = null, secondMarker = null; 
     @Override 
     public void onMapClick(LatLng latLng) { 

      if (firstMarker == null) { 
       MarkerOptions options = new MarkerOptions(); 
       options.position(latLng); 
       firstMarker = map.addMarker(options); 
       return; 
      } 

      if (secondMarker == null) { 
       MarkerOptions options = new MarkerOptions(); 
       options.position(latLng); 
       secondMarker = map.addMarker(options); 
       return; 
      } 
      swap = !swap; 
      if (swap) { 
       firstMarker.setPosition(latLng); 
      } else { 
       secondMarker.setPosition(latLng); 
      } 
     } 
    }); 

Happy_Coding;

+0

Спасибо, Bharat работает нормально. –

Смежные вопросы