我创建了一个基本应用程序,它显示谷歌地图和标记。标记出现在地图上,清除我单击的前一个位置。现在,无论我在谷歌地图上点击哪里,我都试图在标记上显示位置名称/地址/区域名称。但不幸的是,我的申请被关闭了。我用了一个临时的祝酒词来确认展示。我使用的监听器是:
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);
}
});
它仍然不起作用。我哪里搞错了?
我希望这个链接能帮助你http://wptrafficanalyzer.in/blog/android-reverse-geocoding-at-touched-location-in-google-map-android-api-v2/
您可以在地图上设置一个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;
}
}
记住标记有自己的位置、标题、颜色等。