public class MapController
extends java.lang.Object
implements android.opengl.GLSurfaceView.Renderer
MapController
is the main class for interacting with map.Modifier and Type | Class and Description |
---|---|
static class |
MapController.CameraType
Options for changing the appearance of 3D geometry
|
static interface |
MapController.CustomInfoWindow |
static class |
MapController.DebugFlag
Options for enabling debug rendering features
|
static class |
MapController.EaseType
Options for interpolating map parameters
|
static class |
MapController.Error
Options representing an error generated after from the map controller
|
static interface |
MapController.FeaturePickListener
Interface for a callback to receive information about features picked from the map
Triggered after a call of
pickFeature(float, float)
Listener should be set with setFeaturePickListener(FeaturePickListener) |
static interface |
MapController.FrameCaptureCallback
Callback for
captureFrame(FrameCaptureCallback, boolean) |
static interface |
MapController.LabelPickListener
Interface for a callback to receive information about labels picked from the map
Triggered after a call of
pickLabel(float, float)
Listener should be set with setLabelPickListener(LabelPickListener) |
static class |
MapController.MyLocationArg
Enum to pass to
setMyLocationEnabled(boolean, MyLocationArg) method,
And the method will perform action as user/developer's setting. |
static interface |
MapController.OnCameraChangeEndListener
Interface to provide Camera Change End callback method
|
static interface |
MapController.OnCameraChangeListener
Interface to provide Camera Chang callback method
|
static interface |
MapController.OnCameraChangeStartedListener
Interface to provide Camera Change Started callback method
|
static interface |
MapController.OnCircleClickListener |
static interface |
MapController.OnInfoWindowClickListener |
static interface |
MapController.OnMapClickListener |
static interface |
MapController.OnMarkerClickListener |
static interface |
MapController.OnMyLocationChangeListener
Interface to provide Location Changes of map's location dot
|
static interface |
MapController.OnPoiClickListener |
static interface |
MapController.OnPolygonClickListener |
static interface |
MapController.OnPolylineClickListener |
static interface |
MapController.SceneUpdateErrorListener
Interface for a callback to received additional error information in a
SceneUpdateError
Triggered after a call of applySceneUpdates() or loadSceneFile(String, List)
Listener should be set with setSceneUpdateErrorListener(SceneUpdateErrorListener) |
static interface |
MapController.ShapePickListener
Interface for a callback to receive the picked
Shape
Triggered after a call of pickShape(float, float)
Listener should be set with setShapePickListener(ShapePickListener) |
static interface |
MapController.ViewCompleteListener |
Modifier and Type | Method and Description |
---|---|
Circle |
addCircle(CircleOptions circleOptions)
Add new circle on map
|
Marker |
addMarker(MarkerOptions markerOptions)
Add new marker on map
|
Polygon |
addPolygon(PolygonOptions polygonOptions)
Add new polygon on map
|
Polyline |
addPolyline(PolylineOptions polylineOptions)
Add new polyline on map
|
void |
animateCamera(CameraPosition cameraPosition,
int duration)
Set/Update camera position by passing
CameraPosition 's instance with the values provided. |
void |
clearMap()
Clear the map.
|
java.util.ArrayList<Circle> |
getAllCircles() |
java.util.ArrayList<Marker> |
getAllMarkers() |
java.util.ArrayList<Polygon> |
getAllPolygons() |
java.util.ArrayList<Polyline> |
getAllPolyLines() |
MapController.CameraType |
getCameraType()
Get the camera type currently in use for the map view
|
float |
getDisplayDensity() |
Config |
getLocationConfig()
Get
Config instance to configure Location related functions on map |
Bounds |
getMapBounds() |
LngLat |
getMapBoundsCenter() |
CameraPosition |
getMapCameraPosition()
Get
CameraPosition instance of current map's state |
android.graphics.Rect |
getMapRect() |
android.location.Location |
getMyLocation(MapView mapView)
Call this method to get your current Location as plotted on map.
|
UISettings |
getUiSettings()
Get
UISettings instance to perform some UI functionality associated
to the MapView |
android.graphics.PointF |
lngLatToScreenPosition(LngLat lngLat)
Find the position on screen corresponding to the given geographic coordinates
|
LngLat |
mapPointOnline(LngLat p1,
LngLat p2,
LngLat p) |
void |
markerSetPointEasedUsingGeometryMapper(long _markerId,
LngLat point,
float duration,
int easeType,
boolean reversed,
boolean shouldStickMarkerOnGeometery) |
void |
onActivityResult(int requestCode,
int resultCode,
android.content.Intent data) |
void |
onDrawFrame(javax.microedition.khronos.opengles.GL10 gl) |
void |
onPause() |
void |
onRequestPermissionsResult(int requestCode,
java.lang.String[] permissions,
int[] grantResults)
Callback for the result from requesting permissions.
|
void |
onResume() |
void |
onSingleTapConfirmed(float x,
float y) |
void |
onStart() |
void |
onStop() |
void |
onSurfaceChanged(javax.microedition.khronos.opengles.GL10 gl,
int width,
int height) |
void |
onSurfaceCreated(javax.microedition.khronos.opengles.GL10 gl,
javax.microedition.khronos.egl.EGLConfig config) |
void |
registerMapDecryptManager(java.lang.String offlineStoragePath,
java.lang.String key) |
void |
removeAllCircles()
Removes all circles from the map.
|
void |
removeAllMarkers()
Removes all markers from the map.
|
void |
removeAllPolygons()
Removes all polygons from the map.
|
void |
removeAllPolyLines()
Removes all polylines from the map.
|
void |
removeCircle(Circle circle)
Remove circle from the map.
|
void |
removeMarker(Marker marker)
Remove marker from the map.
|
void |
removePolygon(Polygon polygon)
Remove polygon from the map.
|
void |
removePolyline(Polyline polyline)
Remove polyline from the map.
|
LngLat |
screenPositionToLngLat(android.graphics.PointF screenPosition)
Find the geographic coordinates corresponding to the given position on screen
|
void |
setBounds(Bounds bounds,
int padding)
Set bounds on map with padding without animation.
|
void |
setBounds(Bounds bounds,
int padding,
int duration)
Set bounds on map with padding with animation.
|
void |
setBoundsInWindow(Bounds bounds,
android.graphics.Rect rectWindow,
int padding)
Set bounds mapped in a rectWindow specified by the user with padding applied inside that window,
without animation.
|
void |
setBoundsInWindow(Bounds bounds,
android.graphics.Rect rectWindow,
int padding,
int duration)
Set bounds mapped in a rectWindow specified by the user with padding applied inside that window,
with animation.
|
void |
setCamera(CameraPosition cameraPosition)
Set/Update camera position by passing
CameraPosition 's instance with
the values provided. |
void |
setCameraType(MapController.CameraType type)
Set the camera type for the map view
|
void |
setCustomInfoWindow(MapController.CustomInfoWindow customInfoWindow)
Set custom info window for markers added on map view. |
void |
setLngLat(LngLat position)
Set location on map without animation.
|
void |
setLngLat(LngLat position,
int duration)
Set location on map with animation.
|
void |
setLngLatToPointOnScreen(LngLat position,
android.graphics.PointF pointCenter,
int duration)
Set location mapped on a screen coordinate with animation.
|
void |
setLngLatZoom(LngLat position,
float zoom)
Set location on map with zoom and without animation.
|
void |
setLngLatZoom(LngLat position,
float zoom,
int duration)
Set location on map with zoom and with animation.
|
void |
setMaxTilt(float degrees)
Set max tilt value.
|
void |
setMyLocationEnabled(boolean enable)
Set My Location Updates enabled on map.
|
void |
setMyLocationEnabled(boolean enable,
MapController.MyLocationArg arg)
Set My Location Updates enabled on map, your location
MyLocationLayer will be
marked as a layer/marker on map. |
void |
setOnCameraChangeEndListener(MapController.OnCameraChangeEndListener listener)
Set/Register
MapController.OnCameraChangeEndListener for camera updates |
void |
setOnCameraChangeListener(MapController.OnCameraChangeListener listener)
Set/Register
MapController.OnCameraChangeListener for camera updates |
void |
setOnCameraChangeStartedListener(MapController.OnCameraChangeStartedListener listener)
Set/Register
MapController.OnCameraChangeStartedListener for camera updates |
void |
setOnCircleClickListener(MapController.OnCircleClickListener circleClickListener)
Register a callback to be invoked when a Circle on map view is clicked. |
void |
setOnInfoWindowClickListener(MapController.OnInfoWindowClickListener infoWindowClickListener)
Register a callback to be invoked when info window of a marker on map view is clicked. |
void |
setOnMapClickListener(MapController.OnMapClickListener mapClickListener)
Register a callback to be invoked when map view is clicked. |
void |
setOnMapDoubleClickListener(TouchInput.DoubleTapResponder responder)
Set a responder for double-tap gestures
|
void |
setOnMapLongClickListener(TouchInput.LongPressResponder responder)
Set a responder for long press gestures
|
void |
setOnMapPanListener(TouchInput.PanResponder responder)
Set a responder for pan gestures
|
void |
setOnMapRotateListener(TouchInput.RotateResponder responder)
Set a responder for rotate gestures
|
void |
setOnMapScaleListener(TouchInput.ScaleResponder responder)
Set a responder for scale gestures
|
void |
setOnMarkerClickListener(MapController.OnMarkerClickListener markerClickListener)
Register a callback to be invoked when a Marker on map view is clicked. |
void |
setOnMyLocationChangeListener(MapController.OnMyLocationChangeListener listener)
Set listener to get location callbacks when location dot/marker on map changes its location.
|
void |
setOnPoiClickListener(MapController.OnPoiClickListener poiClickListener)
Register a callback to be invoked when a PointOfInterest on map view is clicked. |
void |
setOnPolygonClickListener(MapController.OnPolygonClickListener polygonClickListener)
Register a callback to be invoked when a Polygon on map view is clicked. |
void |
setOnPolylineClickListener(MapController.OnPolylineClickListener polylineClickListener)
Register a callback to be invoked when a Polyline on map view is clicked. |
void |
setPickRadius(float radius)
Set the radius to use when picking features on the map.
|
void |
setSceneUpdateErrorListener(MapController.SceneUpdateErrorListener listener)
Set a listener for scene update error statuses
|
void |
setShoveResponder(TouchInput.ShoveResponder responder)
Set a responder for shove (vertical two-finger drag) gestures
|
void |
setViewCompleteListener(MapController.ViewCompleteListener listener) |
void |
setZoomBy(float zoom)
Set zoom on map without animation.
|
void |
setZoomBy(float zoom,
int duration)
Set zoom on map with animation.
|
void |
setZoomRange(float minZoom,
float maxZoom) |
public void onActivityResult(int requestCode, int resultCode, android.content.Intent data)
public void setZoomRange(float minZoom, float maxZoom)
public void setMaxTilt(float degrees)
degrees
- public MapController.CameraType getCameraType()
CameraType
public void setCameraType(MapController.CameraType type)
type
- A CameraType
public LngLat screenPositionToLngLat(android.graphics.PointF screenPosition)
screenPosition
- Position in pixels from the top-left corner of the map areapublic android.graphics.PointF lngLatToScreenPosition(LngLat lngLat)
lngLat
- Geographic coordinatespublic void setOnMapDoubleClickListener(TouchInput.DoubleTapResponder responder)
responder
- TouchInput.DoubleTapResponder
class instancepublic void setOnMapLongClickListener(TouchInput.LongPressResponder responder)
responder
- TouchInput.LongPressResponder
class instancepublic void setOnMapPanListener(TouchInput.PanResponder responder)
responder
- TouchInput.PanResponder
class instance;
if onPan returns true, normal panning behavior will not occurpublic void setOnMapRotateListener(TouchInput.RotateResponder responder)
responder
- TouchInput.RotateResponder
class instance;
if onRotate returns true, normal rotation behavior will not occurpublic void setOnMapScaleListener(TouchInput.ScaleResponder responder)
responder
- TouchInput.ScaleResponder
class instance;
if onScale returns true, normal scaling behavior will not occurpublic void setShoveResponder(TouchInput.ShoveResponder responder)
responder
- TouchInput.ShoveResponder
class instance;
if onShove returns true, normal tilting behavior will not occurpublic void setPickRadius(float radius)
radius
- The radius in dp (density-independent pixels).public void setViewCompleteListener(MapController.ViewCompleteListener listener)
public void setSceneUpdateErrorListener(MapController.SceneUpdateErrorListener listener)
listener
- The MapController.SceneUpdateErrorListener
to call after scene update have failedpublic void markerSetPointEasedUsingGeometryMapper(long _markerId, LngLat point, float duration, int easeType, boolean reversed, boolean shouldStickMarkerOnGeometery)
public void onDrawFrame(javax.microedition.khronos.opengles.GL10 gl)
onDrawFrame
in interface android.opengl.GLSurfaceView.Renderer
public void onSurfaceChanged(javax.microedition.khronos.opengles.GL10 gl, int width, int height)
onSurfaceChanged
in interface android.opengl.GLSurfaceView.Renderer
public void onSurfaceCreated(javax.microedition.khronos.opengles.GL10 gl, javax.microedition.khronos.egl.EGLConfig config)
onSurfaceCreated
in interface android.opengl.GLSurfaceView.Renderer
public void registerMapDecryptManager(java.lang.String offlineStoragePath, java.lang.String key)
public void onStart()
public void onResume()
public void onPause()
public void onStop()
public UISettings getUiSettings()
UISettings
instance to perform some UI functionality associated
to the MapView
UISettings
instancepublic void setMyLocationEnabled(boolean enable)
MapView
will be zoomed to the current location if location available and for rest updates
only MyLocationLayer
will update.enable
- boolean
value, set true to enable/show
and false to disable/hide location updates and My Location buttonpublic void setMyLocationEnabled(boolean enable, @NonNull MapController.MyLocationArg arg)
MyLocationLayer
will be
marked as a layer/marker on map. The method will function when MapController
object
will be initialized when map ready (in MapView.OnMapReadyCallback
).MapView.OnMapReadyCallback
:
MapController.getLocationConfig()
.setLocationSettings(true) // AUTO LOCATION SETTINGS DIALOG
.setPermissionRequestIfDenied(true) // AUTO LOCATION PERMISSION
.setPermissionReasonDialog("TITLE", "MESSAGE"); // PERMISSION REASON DIALOG
enable
- boolean
value, set true/false to enable/disable location
updates, respectively.arg
- pass enum value of MapController.MyLocationArg
public android.location.Location getMyLocation(MapView mapView)
Location
class.public Config getLocationConfig()
Config
instance to configure Location related functions on mapConfig
public void onRequestPermissionsResult(int requestCode, @NonNull java.lang.String[] permissions, @NonNull int[] grantResults)
androidx.fragment.app.FragmentActivity#requestPermissions(String[], int)
.
Note: It is possible that the permissions request interaction with the user is interrupted. In this case you will receive empty permissions and results arrays which should be treated as a cancellation.
For more description: ActivityCompat.OnRequestPermissionsResultCallback.onRequestPermissionsResult(int, String[], int[])
androidx.fragment.app.FragmentActivity#requestPermissions(String[], int)
public void setOnMyLocationChangeListener(MapController.OnMyLocationChangeListener listener)
MapController.OnMyLocationChangeListener.onMyLocationChanged(Location)
.listener
- instance of MapController.OnMyLocationChangeListener
public CameraPosition getMapCameraPosition()
CameraPosition
instance of current map's stateCameraPosition
objectpublic void setCamera(@NonNull CameraPosition cameraPosition)
CameraPosition
's instance with
the values provided.
Function will execute the functionality without animation.cameraPosition
- an instance of CameraPosition
public void animateCamera(@NonNull CameraPosition cameraPosition, int duration)
CameraPosition
's instance with the values provided.
Function will execute the functionality with animation.cameraPosition
- an instance of CameraPosition
duration
- time duration in milliSecondspublic void setOnCameraChangeStartedListener(MapController.OnCameraChangeStartedListener listener)
MapController.OnCameraChangeStartedListener
for camera updateslistener
- an instance of MapController.OnCameraChangeStartedListener
public void setOnCameraChangeListener(MapController.OnCameraChangeListener listener)
MapController.OnCameraChangeListener
for camera updateslistener
- an instance of MapController.OnCameraChangeListener
public void setOnCameraChangeEndListener(MapController.OnCameraChangeEndListener listener)
MapController.OnCameraChangeEndListener
for camera updateslistener
- an instance of MapController.OnCameraChangeEndListener
public void setZoomBy(float zoom)
zoom
- zoom level/value e.g. 12.5fpublic void setZoomBy(float zoom, int duration)
zoom
- zoom level/value e.g. 12.5fduration
- time duration in milliSecondspublic void setLngLat(LngLat position)
position
- location to set on mappublic void setLngLat(LngLat position, int duration)
position
- location to set on mapduration
- time duration in milliSecondspublic void setLngLatToPointOnScreen(LngLat position, android.graphics.PointF pointCenter, int duration)
position
- location to set on mappointCenter
- screen coordinate where position to be set, relative to MapView's coordinatesduration
- time duration in milliSecondspublic void setLngLatZoom(LngLat position, float zoom)
position
- location to set on mapzoom
- zoom level/value e.g. 12.5fpublic void setLngLatZoom(LngLat position, float zoom, int duration)
position
- location to set on mapzoom
- zoom level/value e.g. 12.5fduration
- time duration in milliSecondspublic void setBounds(@NonNull Bounds bounds, int padding)
bounds
- an instance of Bounds
classpadding
- in pixels, pass value 0 to not to set paddingpublic void setBounds(@NonNull Bounds bounds, int padding, int duration)
bounds
- an instance of Bounds
classpadding
- in pixelsduration
- time duration in milliSecondspublic void setBoundsInWindow(@NonNull Bounds bounds, android.graphics.Rect rectWindow, int padding)
bounds
- an instance of Bounds
classrectWindow
- Rect
window, relative to MapView's Rectpadding
- in pixelspublic void setBoundsInWindow(@NonNull Bounds bounds, android.graphics.Rect rectWindow, int padding, int duration)
bounds
- an instance of Bounds
classrectWindow
- Rect
window, relative to MapView's Rectpadding
- in pixelsduration
- time duration in milliSecondspublic float getDisplayDensity()
public Bounds getMapBounds()
public LngLat getMapBoundsCenter()
public android.graphics.Rect getMapRect()
@NonNull public final Marker addMarker(MarkerOptions markerOptions)
markerOptions
- must set MarkerOptions.position(LngLat)
to show markerMarker
if marker added successfully otherwise NULLpublic final java.util.ArrayList<Marker> getAllMarkers()
public final void removeMarker(Marker marker)
marker
- object to remove.public final void removeAllMarkers()
@NonNull public final Polyline addPolyline(PolylineOptions polylineOptions)
polylineOptions
- must set points list PolylineOptions.add(LngLat...)
to show polylinePolyline
if polyline added successfully otherwise NULLpublic final java.util.ArrayList<Polyline> getAllPolyLines()
public final void removePolyline(Polyline polyline)
polyline
- object to remove.public final void removeAllPolyLines()
@NonNull public final Polygon addPolygon(PolygonOptions polygonOptions)
polygonOptions
- must set points list PolygonOptions.add(LngLat...)
to show polygon. LngLat
points to draw a polygonPolygon
if polygon added successfully otherwise NULLpublic final java.util.ArrayList<Polygon> getAllPolygons()
public final void removePolygon(Polygon polygon)
polygon
- object to remove.public final void removeAllPolygons()
@NonNull public final Circle addCircle(CircleOptions circleOptions)
circleOptions
- must set CircleOptions.center(LngLat)
and CircleOptions.radius(double)
to show circlepublic final java.util.ArrayList<Circle> getAllCircles()
public final void removeCircle(Circle circle)
circle
- object to remove.public final void removeAllCircles()
public final void clearMap()
public void onSingleTapConfirmed(float x, float y)
public final void setOnMapClickListener(MapController.OnMapClickListener mapClickListener)
mapClickListener
- the callback to be returnedpublic final void setOnPoiClickListener(MapController.OnPoiClickListener poiClickListener)
PointOfInterest
on map view is clicked.poiClickListener
- the callback to be returnedpublic final void setOnMarkerClickListener(MapController.OnMarkerClickListener markerClickListener)
Marker
on map view is clicked.markerClickListener
- the callback to be returned.public final void setOnPolylineClickListener(MapController.OnPolylineClickListener polylineClickListener)
Polyline
on map view is clicked.
Polyline.setClickable(boolean)
must set true to invoke click listenerpolylineClickListener
- the callback to be returnedpublic final void setOnPolygonClickListener(MapController.OnPolygonClickListener polygonClickListener)
Polygon
on map view is clicked.
Polygon.setClickable(boolean)
must set true to invoke click listenerpolygonClickListener
- the callback to be returnedpublic final void setOnCircleClickListener(MapController.OnCircleClickListener circleClickListener)
Circle
on map view is clicked.
Polygon.setClickable(boolean)
must set true to invoke click listenercircleClickListener
- the callback to be returnedpublic final void setOnInfoWindowClickListener(MapController.OnInfoWindowClickListener infoWindowClickListener)
infoWindowClickListener
- the callback to be returnedpublic final void setCustomInfoWindow(MapController.CustomInfoWindow customInfoWindow)
MapController.CustomInfoWindow.onInfoWindow(Marker)
MapController.CustomInfoWindow.onInfoWindowContent(Marker)
customInfoWindow
- the callback to be returned