2016-03-15 79 views
-1

我只需要加载google map上的两个标记,但加载了多个标记。Android上的Google地图上只加载两个标记

下面是我的代码:

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加载地图,上面就是我试图加载标记。它根据提供的纬度和长度加载标记,但我需要在我的谷歌地图上只绘制两个标记。

+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它工作正常。 –

相关问题