#java #dictionary #google-maps #google-maps-markers
Вопрос:
Я совершенно новичок в разработке Java и Android, и я пытался отобразить окно информации о маркере, когда я нажимал на свое приложение. Любая обратная связь о том, что я, очевидно, делаю неправильно, очень ценится.
void showUsersOnMapRaw(Null ArrayList<User> users, GoogleMap map) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
ArrayList<LatLng> latLngs = new ArrayList<>();
map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(@NonNull @NotNull Marker marker) {
return false;
}
});
//set user marker info
for (User user: users) {
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss a - ");
Date dt = new Date(user.getLastcheckindate());
String time = dateFormat.format(dt) getRelativeTimeSpanString(user.getLastcheckindate(), new Date().getTime(), 0);
LatLng latLng = new LatLng(
user.getLastKnownLocation().getLatitude(),
user.getLastKnownLocation().getLongitude()
);
String title = user.getName();
//title, location, currenttime
MarkerOptions marker = new MarkerOptions()
.position(latLng)
.title(title)
.snippet(time)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
builder.include(marker.getPosition());
latLngs.add(latLng);
EngineersMapClusterItem offsetItem = new EngineersMapClusterItem(
user.getLastKnownLocation().getLatitude(),
user.getLastKnownLocation().getLongitude(),
user
);
mClusterManager.addItem(offsetItem);
mClusterManager.cluster();
LatLngBounds bounds = builder.build();
// other codes
}
}
Комментарии:
1. Вы можете программно отобразить информационное окно маркера, позвонив
showInfoWindow()
. Для получения более подробной информации я предлагаю вам ознакомиться с официальной документацией о том, как показывать/скрывать информационные окна: developers.google.com/maps/documentation/android-sdk/…