/** * when marker is clicked * * @param callback */ public void whenMarkerClick(final MarkerCallback callback) { map.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { callback.invokedMarker(map, marker); return true; } }); }
@Override public void onResume() { if(getMap() != null && getView() != null) { // Ponemos que inicie el mapa en el Kiosko de Surbus getMap().moveCamera(CameraUpdateFactory.newLatLng(coordenadas)); getMap().setMapType(GoogleMap.MAP_TYPE_HYBRID); getMap().setMyLocationEnabled(true); getMap().setOnMyLocationChangeListener(this); getMap().moveCamera(CameraUpdateFactory.zoomTo(15)); getMap().setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { synchronized (DataStorage.paradas) { Parada p = DataStorage.paradas.get(Integer.parseInt(marker.getTitle())); DialogFragment f = MostrarInfoParada.newInstance(p.getId()); f.show(getActivity().getSupportFragmentManager(), "Info"); } return true; } }); bitmapParada = BitmapDescriptorFactory.fromResource(R.drawable.bus_stop); buscarParadas(); } super.onResume(); }
/** * Get a MarkerClickListener that calls our custom selectMarker method * * @return OnMarkerClickListener that calls selectMarker */ public OnMarkerClickListener getAnimatedMarkerClickListener() { return new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { selectMarker(marker); return false; } }; }
@Override public final void setOnMarkerClickListener(OnMarkerClickListener listener) { map.setOnMarkerClickListener(listener); }
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { keepCurrentLocationVisible = savedInstanceState.getBoolean( KEEP_CURRENT_LOCATION_VISIBLE_KEY, false); if (keepCurrentLocationVisible) { Location location = (Location) savedInstanceState.getParcelable(CURRENT_LOCATION_KEY); if (location != null) { setCurrentLocation(location); } } } /* * At this point, after onCreateView, getMap will not return null and we can * initialize googleMap. However, onActivityCreated can be called multiple * times, e.g., when the user switches tabs. With * GoogleMapOptions.useViewLifecycleInFragment == false, googleMap lifecycle * is tied to the fragment lifecycle and the same googleMap object is * returned in getMap. Thus we only need to initialize googleMap once, when * it is null. */ if (googleMap == null) { googleMap = getMap(); googleMap.setMyLocationEnabled(true); /* * My Tracks needs to handle the onClick event when the my location button * is clicked. Currently, the API doesn't allow handling onClick event, * thus hiding the default my location button and providing our own. */ googleMap.getUiSettings().setMyLocationButtonEnabled(false); googleMap.setIndoorEnabled(true); googleMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { if (isResumed()) { String title = marker.getTitle(); if (title != null && title.length() > 0) { long id = Long.valueOf(title); Context context = getActivity(); Intent intent = IntentUtils.newIntent(context, MarkerDetailActivity.class) .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, id); context.startActivity(intent); } } return true; } }); googleMap.setLocationSource(new LocationSource() { @Override public void activate(OnLocationChangedListener listener) { onLocationChangedListener = listener; } @Override public void deactivate() { onLocationChangedListener = null; } }); googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition cameraPosition) { if (isResumed() && keepCurrentLocationVisible && currentLocation != null && !isLocationVisible(currentLocation)) { keepCurrentLocationVisible = false; } } }); } }
void setOnMarkerClickListener(OnMarkerClickListener listener);