我创建了一个基本应用程序,它显示谷歌地图和标记。无论我点击哪里,标记都会显示在地图上,清除之前的位置。现在,我试图在标记处显示位置名称/地址/区域名称,只要我点击谷歌地图。但遗憾的是我的应用程序正在关闭。我暂时使用Toast来确认显示。我使用的听众是:
Temporary.java文件
googleMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
List<Address> address = null;
Geocoder geocode;
// TODO Auto-generated method stub
geocode = new Geocoder(Temporary.this,Locale.getDefault());
try {
address=geocode.getFromLocation(currentGPS.latitude, currentGPS.longitude, 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String address1=address.get(0).getCountryName();
Toast.makeText(Temporary.this,address1, Toast.LENGTH_LONG).show();
return false;
}
});
我又尝试了一个Listener,如下所示:
googleMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
List<Address> address = null;
Geocoder geocode;
// TODO Auto-generated method stub
geocode = new Geocoder(Temporary.this,Locale.getDefault());
try {
address=geocode.getFromLocation(point.latitude, point.longitude, 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point);
markerOptions.title("Area Name :"+address.get(0).getLocality());
googleMap.clear();
googleMap.addMarker(markerOptions);
}
});
仍然无法正常工作。哪里弄错了?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以在地图上设置InfoWindow,并在当前选择中对其进行自定义。
map.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
return null;
}
@Override
public View getInfoContents(Marker arg0) {
currentInfo = getLayoutInflater().inflate(R.layout.info_layout, null);
//Do what you want with the view
return currentInfo;
}
}
请记住,标记有自己的位置,标题,颜色等。