fragments and the maps api - university of...
TRANSCRIPT
![Page 1: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/1.jpg)
Fragments and the Maps API
Alexander Nelson
October 9, 2019
University of Arkansas - Department of Computer Science and Computer Engineering
![Page 2: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/2.jpg)
Fragments
![Page 3: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/3.jpg)
Fragments
Fragment – A behavior or a portion of a user interface in an
Activity
A modular section of an activity
• Has its own lifecycle
• Receives own input events
• Can add or remove while activity is running
https://developer.android.com/guide/components/fragments.html
Used under Creative Commons Attribution License 2.5
![Page 4: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/4.jpg)
Fragment
Fragment Properties:
• Must always be embedded in an activity
• Lifecycle directly affected by host activity lifecycle
• e.g. When host activity is paused, so are all child fragments
• While activity is running, each fragment can be manipulated
independently
• Fragment transitions can be artificially added to backstack
![Page 5: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/5.jpg)
ViewGroup
A fragment is added to layout as part of a ViewGroup
• Special view that can contain other views
Fragment then defines its own view layout
Not required to be part of layout, can be utilized as invisible
worker for activity
![Page 6: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/6.jpg)
Design Considerations
Fragments should be designed as modular and reusable
components
Allow different combinations of fragments depending on screen size
![Page 7: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/7.jpg)
Fragment Lifecycle
![Page 8: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/8.jpg)
Creating a Fragment
Create a fragment as a subclass of Fragment
That class should implement some of the Fragment lifecycle
callbacks
• onCreate
• onCreateView
• First time the fragment is drawn to the UI
• Must return a View
• onPause
You may implement the other callbacks for the lifecycle as needed
![Page 9: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/9.jpg)
Fragment Subclasses
You may wish to extend some Fragment subclasses:
• Dialog Fragment
• Displays a floating dialog
• ListFragment
• Displays a list of items that are managed by an adapter
• Provides several methods for managing a list view (e.g.
onListItemClick()
• PreferenceFragment
• Displays a hierarchy of Preference objects as a list
• Useful when creating a “settings” activity for an application
![Page 10: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/10.jpg)
Adding a User Interface
A fragment is usually added as part of Activity UI
To provide a layout for a fragment, must implement
onCreateView() callback To return a layout from onCreateView()
you can inflate a layout resource defined in XML
To do so, you can use the LayoutInflater object which is passed to
the onCreateView callback
![Page 11: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/11.jpg)
Inflating a Fragment
The LayoutInflater object has a function called inflate()
Takes three arguments:
• ResourceID of the layout file to be inflated
• The ViewGroup which will be the parent (e.g. the Container)
• A boolean indicating whether the inflated layout should be
attached to the ViewGroup
![Page 12: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/12.jpg)
Adding a Fragment to an Activity
Two ways you can add a fragment:
• Declare Fragment in Activity Layout file
• Programmatically add the fragment to an existing ViewGroup
![Page 13: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/13.jpg)
Declare in Layout
![Page 14: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/14.jpg)
Declare in Layout
The “android:name” attribute specifies the Fragment class to
instantiate
When the system creates this layout, each fragment is instantiated
and the onCreateView() callback retrieves the fragment layout
Each Fragment requires a unique identifier:
• Supplied by “android:id” with unique id
• Supplied by “android:tag” attribute
• If neither provided, the ID of the containerView is used
![Page 15: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/15.jpg)
Defined Programmatically
To make fragment transactions in an activity, use
FragmentTransactions
Can get an instance of the FragmentTransactions API through the
FragmentManager
![Page 16: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/16.jpg)
Defined Programmatically
FragmentTransaction.add():
First parameter is the ViewGroup where the fragment should be
placed
Second parameter is the Fragment to be added
Once all changes are made, the commit() function is used to
commit changes
![Page 17: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/17.jpg)
Maps
![Page 18: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/18.jpg)
Maps API
The Google Maps Android API allows display of a map similar to
the Google Maps Mobile App
Differences:
• Map tiles don’t contain any personalized content
• Not all items are clickable
• Markers added by the app are clickable
• Listener callbacks for clicking on those markers
https://developers.google.com/maps/documentation/android-api/map
Used under Creative Commons Attribution 3.0 License
![Page 19: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/19.jpg)
The Map Object
The key class is the GoogleMap class
The map will be represented either by a MapFragment or a
MapView object
![Page 20: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/20.jpg)
The Map Object
GoogleMap automatically handles the following
• Connecting to Google Maps service
• Downloading map tiles
• Displaying tiles on the device screen
• Displaying controls (e.g. pan, zoom)
• Responding to gestures on the map
![Page 21: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/21.jpg)
The Map Object
GoogleMap allows creation and control of map objects
Example Additions: Set marker icons, add overlays
Example Controls: Clicks, swipes
![Page 22: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/22.jpg)
MapFragment
The container object for the map and the GoogleMap object is the
MapFragment
MapFragment is a child of the Fragment class
![Page 23: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/23.jpg)
Adding a MapFragment
XML Defined:
![Page 24: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/24.jpg)
Adding a MapFragment
Code Defined:
![Page 25: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/25.jpg)
Add Map Code
To work with the map inside the application, OnMapReady
callback must be implemented
Use getMapAsync() to set the callback on the fragment
The onMapReady(GoogleMap) callback returns a handle to the
GoogleMap object
![Page 26: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/26.jpg)
MapView
MapView – subclass of View class
Allows pacement of a map in a View to act as container for the
GoogleMap object
When using the API in “fully interactive mode” users of the
MapView class must forward callbacks for:
• onCreate()
• onStart()
• onResume()
• onPause()
• onStop()
• onDestroy()
• onSaveInstanceState()
• onLowMemory()
![Page 27: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/27.jpg)
Map Styles
The GoogleMap API allows four+1 styles of maps:
• Normal
• Hybrid
• Satellite
• Terrain
• None
Can choose by setting MapType
e.g. map.setMapType(GoogleMap.MAP TYPE HYBRID);
![Page 28: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/28.jpg)
Map Style – Normal
Implemented as a road map
Shows roads, some features, as
well as labels for roads and
features
![Page 29: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/29.jpg)
Map Style – Satellite
Satellite photograph data
Road and feature labels are not
visible.
![Page 30: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/30.jpg)
Map Style – Hybrid
Satellite photograph data with
road maps added
Road and feature labels are also
visible
![Page 31: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/31.jpg)
Map Style – Terrain
Topographic data
The map includes colors, contour
lines and labels, and perspective
shading
Some roads and labels are also
visible
![Page 32: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/32.jpg)
Indoor Maps
At high zoom levels, the Normal map type will show plans for
indoor spaces
Indoor maps become automatically enabled when the user zooms in
![Page 33: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/33.jpg)
Indoor Maps API
Can disable Indoor maps
e.g. map.setIndoorEnabled(false);
Indoor maps can be enabled only on one map at a time
• The first map added to the app by default
Must disable indoor on first map and enable on second map
![Page 34: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/34.jpg)
Indoor Maps API
The Floor Picker can also be disabled
GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(false);
Callback OnIndoorStateChangeListener allows event driven
response to buildings coming into focus
GoogleMap.getFocusedBuilding() gives the building that is
currently in focus
![Page 35: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/35.jpg)
Adding Indoor Maps
How can I add indoor maps to my application?
Two ways:
1. Add floor plans to Google Maps directly1
2. Display a floor plan as a ground or tile overlay on the map
1https://support.google.com/maps/answer/2803784
![Page 36: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/36.jpg)
Initial State
The Maps API allows configuring the initial state of the map
You can specify the following:
• The Camera position including:
• Zoom
• Bearing
• Tilt
• The Map type
• Whether zoom/compass appear on screen
• What gestures can be used to manipulate the camera
• Whether lite mode is enabled
![Page 37: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/37.jpg)
Lite Mode
Google Maps Lite Mode – Static bitmap of google map at
specified location and zoom
Features:2
Map cannot be zoomed or panned
Markers may be added and will have click listeners
Most drawing capabilities also work with lite mode
2https://developers.google.com/maps/documentation/android-
api/lite#supported api features
![Page 38: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/38.jpg)
Configuring Initial State
Two ways to configure the Map:
• Using custom XML attributes for MapFragment or MapView
• Programmatically with the Maps API
![Page 39: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/39.jpg)
Configuring using XML
Before you can configure the attributes, you must add a
namespace declaration:
xmlns:namespace=“http://schemas.android.com/apk/res-auto”
![Page 40: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/40.jpg)
Configuring Programmatically
GoogleMapOptions object3 – Container object for all options
Get instance:
GoogleMapOptions myOptions = new GoogleMapOptions();
Then configure with attributes
e.g. myOptions.compassEnabled(false)
Finally, add Fragment or View and pass the options object as a
parameter
e.g. MapFragment.newInstance(myOptions);
3https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMapOptions
![Page 41: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/41.jpg)
Map Padding
The MapFragment and MapView objects are designed to use the
entire region of the parent container object
This affects the behavior of the map elements:
• The camera center will be at the center of the container
• The Map Controls will be positioned to the edges
• Legal information is provided along the bottom
Often, you may wish to add elements on top of the map which
allow control, e.g. Some sidebar with buttons
Map padding enables this behavior
![Page 42: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/42.jpg)
Map Padding
Map Padding enables adding space (padding) to the edges of a
map
Changes the behavior of map elements
GoogleMap.setPadding(left,top,right,bottom);
This method takes four integers for pixels to add to each of the
four sides of the map
![Page 43: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/43.jpg)
Styling the map
Custom styling can be applied to the Normal map type
(Does not affect indoor maps)
Applied using a GoogleMapsObject and passing a JSON dictionary
describing the style
Can play with options and create a style at
https://mapstyle.withgoogle.com/
![Page 44: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/44.jpg)
Drawing on the Map
![Page 45: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/45.jpg)
Markers
Markers – Indicate single locations on the map
Stylizing Markers:
• Can change the default color
• Can replace with a custom image
• Can apply info windows (especially during an onClick)
![Page 46: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/46.jpg)
Add a Marker
Pass a MarkerOptions object to the addMarker function of the
GoogleMap object
e.g. map.addMarker(new MarkerOptions().position(new
LatLng(36.0822,94.172)).title(“Fayetteville”));
![Page 47: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/47.jpg)
Associating Data with a Marker
Aside from the default options, the Marker class can associate with
an arbitrary object
Use Marker.setTag() & Marker.getTag() to set and get the object
respectively
![Page 48: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/48.jpg)
Getting Marker Click Events
By default, markers enable their onClick callback
Override the onMarkerClick(Marker) method
![Page 49: Fragments and the Maps API - University of Arkansascsce.uark.edu/~ahnelson/CSCE4623/lectures/lecture12.pdf · Fragments and the Maps API Alexander Nelson October 9, 2019 ... Fragment](https://reader034.vdocument.in/reader034/viewer/2022042222/5ec8d02e598f0f111b7110bd/html5/thumbnails/49.jpg)
Markers Options
There are many ways that Markers can be stylized
Find these at:
https://developers.google.com/android/reference/com/
google/android/gms/maps/model/Marker
and
https://developers.google.com/maps/documentation/
android-api/marker