当我按下按钮时重新定位标记android API V2

Posted

技术标签:

【中文标题】当我按下按钮时重新定位标记android API V2【英文标题】:reposition a marker when I press button android API V2 【发布时间】:2015-10-07 12:27:44 【问题描述】:

我有以下代码,当我按下菜单按钮时,我想重新定位相同的标记和相机,但我不知道该怎么做,我已经阅读了官方文档,但我没有找到信息。我正在使用repositionMarker() 方法来做到这一点,但我不知道该怎么做。谢谢

public class Init extends AppCompatActivity implements OnMapReadyCallback

   private MapFragment map;
   static final LatLng PERTH = new LatLng(19.0436, -98.1981);
   private CameraUpdate camaraloc, camaraloczoom;
   private Marker markerloc;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inicio);
                map = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
        if (map != null)
        
           map.getMapAsync(this);
        
    

    @Override
    public void onMapReady(GoogleMap map)
    
        map.setMyLocationEnabled(true);

        camaraloc = CameraUpdateFactory.newLatLng(PERTH);
        camaraloczoom = CameraUpdateFactory.zoomTo(8);
        map.moveCamera(camaraloc);
        map.animateCamera(camaraloczoom);
        markerloc = map.addMarker(new MarkerOptions().position(PERTH)
            .title("city").snippet("esp").icon(BitmapDescriptorFactory
                    .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    
            getMenuInflater().inflate(R.menu.menu_inicio, menu);
            return true;
           return super.onCreateOptionsMenu(menu);
    

    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    
        switch (item.getItemId())
        
            case android.R.id.home:
                drawerLayout.openDrawer(GravityCompat.START);
                return true;
            case R.id.action_settings:
                Toast.makeText(this, "name marker: "+markerloc.getTitle(), Toast.LENGTH_SHORT).show();
                reposicionMarker();
                return true;
        
        return super.onOptionsItemSelected(item);
    

    public void repositionMarker()
    
         camaraloc = CameraUpdateFactory.newLatLng(new LatLng(16.65, -91.8658));
         camaraloczoom = CameraUpdateFactory.zoomTo(15);
        if ( markerloc != null )
            markerloc.remove();
        markerloc.setPosition(new LatLng(16.65, -91.8658));
        // here is where I dont know what to do
    


【问题讨论】:

【参考方案1】:

Marker 上调用setLocation 应该可以更改其位置。您的问题似乎是您实际上是在设置新位置之前删除了标记。

【讨论】:

以上是关于当我按下按钮时重新定位标记android API V2的主要内容,如果未能解决你的问题,请参考以下文章

当我按下快速播放按钮时,声音播放失败

当我按下购物车按钮时,我的应用程序崩溃了

点击按钮时 UITableView 重新加载数据

Android 相机(手电筒)API 太慢

当我按下tableview中的按钮时

当我按下 ENTER 时如何重新开始我的游戏?