Android隐藏标记未选中

时间:2015-03-23 06:13:54

标签: java android api google-maps google-maps-api-3

我正在使用此项目的列表视图让用户选择一个位置,他们可以使用指向该位置的标记打开该位置的地图视图。目前我有4个标记,所有标记都在工作,但有没有办法隐藏用户未选择的所有标记?这些是我在MapsActivity中使用的标记

    mMap.addMarker(new MarkerOptions().position(new LatLng(40.1983, -85.4089)).title("University"));
    mMap.addMarker(new MarkerOptions().position(new LatLng(40.2223, -85.3753)).title("Mall"));
    mMap.addMarker(new MarkerOptions().position(new LatLng(40.2217, -85.3808)).title("Target"));
    mMap.addMarker(new MarkerOptions().position(new LatLng(40.160175, -85.371147)).title("Walmart"));

这是我在MainActivity中使用的代码,当选择列表中的项目时将用户发送到地图活动现在它只是为商城设置,直到我开始工作。它显示的地图以0,0为中心,所有4个标记都在美国。 (我的麻烦的第2部分)当我尝试将mMap代码放入主要活动时,它会向我抛出错误

    if (id == R.id.map_it && tasknumber == 1) {

        Intent nextScreen = new Intent(this, MapsActivity.class);
        startActivity(nextScreen);
        return true;
    }

我也试图设置地图,使地图在标记上居中。在mapactivity类中,我试图使用下面的代码抛出一个错误(latLng,10),说newLatLngBounds不能应用于

    private void setUpMap() {
        LatLng latLng = new LatLng(40.1983, -85.4089);
        mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latLng, 10));

2 个答案:

答案 0 :(得分:0)

您可以清除地图并添加用户在listview中点击的标记

mMap.clear();

实现onItemClick侦听器:

onItemClick(AdapterView<?> parent, View view, int position, long id) {
    addMarker(position);
}

添加方法将根据用户点击的Listview索引在地图上添加标记:

public void addMarker(int index) {
    // clear previous markers on Map
    mMap.clear();

    switch(index) {
        case 0 : mMap.addMarker(new MarkerOptions().position(new LatLng(40.1983, -85.4089)).title("University"));
                break;
        case 1 : mMap.addMarker(new MarkerOptions().position(new LatLng(40.2223, -85.3753)).title("Mall"));
                break;
        case 2 : mMap.addMarker(new MarkerOptions().position(new LatLng(40.2217, -85.3808)).title("Target"));
                break;
        case 3 : mMap.addMarker(new MarkerOptions().position(new LatLng(40.1983, -85.4089)).title("University"));
                break;   
}

答案 1 :(得分:0)

您可以使用setVisiblity隐藏/显示标记。

请查看以下代码供您参考。

 Marker mMarker= gMap.addMarker(newMarkerOptions().position(latlng).title("MyPlace").icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin)).draggable(true));
mMarker.setVisible(false);