【发布时间】: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