【问题标题】:Google Map Marker Info WIndow OnClick EventGoogle 地图标记信息窗口 OnClick 事件
【发布时间】:2014-09-26 10:31:18
【问题描述】:

我是 Google Map API V2 和 Android,并尝试为 google 地图标记设置 onClick 事件。基本上我有两组标记:

巴士站标记

private void addBusStopMarker(){
    map.addMarker(new MarkerOptions().position(new LatLng(1.28213,103.81721)).title("10009 - Bt Merah Ctrl").icon(BitmapDescriptorFactory.fromResource(R.drawable.busstopicon)).snippet("Average Commuters: 9,940"));
    map.addMarker(new MarkerOptions().position(new LatLng(1.28294,103.82166)).title("10089 - Jln Bt Merah - B08").icon(BitmapDescriptorFactory.fromResource(R.drawable.busstopicon)).snippet("Average Commuters: 2,050"));
}

学校标记

    private void addSchoolMarker(){
    map.addMarker(new MarkerOptions().position(new LatLng(1.28515,103.81509)).title("Gan Eng Seng Primary School").icon(BitmapDescriptorFactory.fromResource(R.drawable.school)).snippet("Address: 100 RedHill Close, 158901"));
    map.addMarker(new MarkerOptions().position(new LatLng(1.28555,103.81361)).title("Bt Merah Secondary School").icon(BitmapDescriptorFactory.fromResource(R.drawable.school)).snippet("Address: 100 Henderson Road, 158901"));
}

还有我的标记信息窗口 onClick 事件:

private void initilizeMap() {
    if (map == null) {
        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
                R.id.map)).getMap();}
         });

        //Bus stop info window onClick event
        map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
            @Override
            public void onInfoWindowClick(Marker marker) {
               Intent intent = new Intent(context ,PopulationCharts.class);
               String title = marker.getTitle();
               intent.putExtra("markertitle", title);
               startActivity(intent);
            }
        });

        // check if map is created successfully or not
        if (map == null) {
            Toast.makeText(getApplicationContext(),
                    "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                    .show();
        }
    }
}

基本上,如果单击信息窗口,它将显示图表,但这仅适用于公交车站标记。但是,从上面的代码中,即使我的学校标记信息窗口在点击,它仍然会显示图表。我想知道是否有任何方法可以仅为我的学校标记禁用信息窗口 onclick 事件?

提前致谢。

【问题讨论】:

  • 如果您需要区分标记类型,请尝试在标记中添加一个额外参数(即boolean isSchool = true)或创建两个不同的onInfoWindowClick 侦听器...查看您的代码,您可以在onInfoWindowClick 方法如果标记标题包含单词“学校”并做出相应的反应

标签: android google-maps marker


【解决方案1】:

您可以尝试检查您正在与之交互的Marker 的标题中是否包含“学校”一词:

@Override
public void onInfoWindowClick(Marker marker) {
    Intent intent = new Intent(context ,PopulationCharts.class);
    String title = marker.getTitle();
    if(!title.contains("school")){ // if bus stop
         intent.putExtra("markertitle", title);
         startActivity(intent);
    }else{
         // whatever you need to do for schools
    }
}

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2016-01-20
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多