【问题标题】:Android hiding markers not selected未选择Android隐藏标记
【发布时间】:2015-05-26 02:04:08
【问题描述】:

我正在使用该项目的列表视图让用户选择一个位置,并且他们能够打开该位置的地图视图,并带有指向它的标记。目前我有 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;
    }

我正在尝试设置地图,使其以标记为中心。在 mapsactivity 类中,我试图使用它下面的代码在 (latLng, 10) 处抛出一个错误,说 newLatLngBounds 不能应用于

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      请检查以下代码以供参考。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        相关资源
        最近更新 更多