This is an example of displaying some details of a MapsIndoors location
Requirements for this tutorial will be to have a running fragment or activity with a MapsIndoors Map loaded and ready to use.
We need a view that shows the details of the location. Here we will use a TextView to display the name and description of a location:
<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/details_text_view"android:background="@color/cardview_light_background"android:visibility="gone"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"android:text="This is the text view for details of the location"/>
Once the map is ready move the camera to a Venue:
val venue = MapsIndoors.getVenues()!!.currentVenueactivity?.runOnUiThread {if (venue !=null) {//Animates the camera to fit the new venue mMap!!.animateCamera( CameraUpdateFactory.newLatLngBounds(toLatLngBounds(venue.bounds!!),19 ) ) }}
We will then create a listener for when a user clicks on a marker to show the details of the selected location. This is done by setting a onLocationSelectedListener on your MapControl object. We will also listen to when the info window closes, to remove the DetailsTextView from the view. This is done by setting the onMarkerInfoWindowCloseListener on MapControl.
When a marker is clicked, get the related MapsIndoors location object and propagate that to a method that fills the text in the detailsTextView.