问题描述
在onmarkerclick()操作的论坛上,我尝试了很多解决方案,但都没有奏效。
我正在使用一个使用 google maps api 的应用程序,我们想要编写一个路线跟踪器。
我现在尝试实现的操作是通过单击标记可以跟踪到它的路径,问题是 onmarkerclick 方法不起作用或返回任何内容。
我将添加我认为重要的两部分代码,以便能够找到问题的解决方案:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setonMapClickListener(this);
mMap.setonMarkerClickListener(this);
mMap.setonInfoWindowClickListener(this);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
buildGoogleapiclient();
mMap.setMyLocationEnabled(true);
}
}
else {
buildGoogleapiclient();
mMap.setMyLocationEnabled(true);
}
// Add layer
try {
layer = new KmlLayer(mMap,R.raw.kmltest,getApplicationContext());
layer.addLayerToMap();
// Set a listener for geometry clicked events.
layer.setonFeatureClickListener(new KmlLayer.OnFeatureClickListener() {
@Override
public void onFeatureClick(Feature feature) {
Log.i("KML","Feature clicked: " + feature.getProperty("cua_DESCRI"));
}
});
} catch (XmlPullParserException e) {
e.printstacktrace();
} catch (IOException e) {
e.printstacktrace();
}
// end of layer add
}
public boolean onMarkerClick(Marker marker) {
Log.d("Comprobar markerclick","onMarkerClick !!!!!!!!!!!!!!!!!! ");
btnTrazarRuta.hide();
//El destino que buscaremos al dar click
destinorutaUnica = marker.getPosition().latitude + "," + marker.getPosition().longitude;
return false;
}
onmarkerclick 方法应该隐藏一个按钮并获取标记的位置,但在此之前我放了一个 logd 以便能够查看它是否至少进入了该方法,但没有。它完全没有显示。
解决方法
遇到同样问题的人。
在我的情况下是这条线:
layer = new KmlLayer(mMap,R.raw.kmltest,getApplicationContext());
显然,在处理 KML 图层时,onmarkerclick() 和同时 oninfowindowsclick() 停止工作。
我不知道为什么。