package com.mutu.mapapi.api;
/**
* An interface that contains the common features of osmdroid and Google Maps v2.
*/
public interface IMap {
/**
* Get the current zoom level of the map
*/
float getZoomLevel();
/**
* Set the zoom level of the map
*/
void setZoom(float zoomLevel);
/**
* Get the center of the map
*/
IGeoPoint getCenter();
/**
* Set the center of the map
*/
void setCenter(double latitude, double longitude);
/**
* Get the bearing of the map.
* Zero means the top of the map is facing north.
*/
float getBearing();
/**
* Set the bearing of the map.
* Set to zero for the top of the map to face north.
*/
void setBearing(float bearing);
/**
* Set the position of the map
*/
void setPosition(IPosition position);
/**
* Increase zoom level by one
*/
boolean zoomIn();
/**
* Decrease zoom level by one
*/
boolean zoomOut();
/**
* Whether to show the "my location" dot on the map
*/
void setMyLocationEnabled(boolean enabled);
/**
* Whether the map is currently showing the "my location" dot
*/
boolean isMyLocationEnabled();
/**
* Get the map projection
*/
IProjection getProjection();
/**
* Add a marker.
*/
void addMarker(Marker marker);
/**
* Add a polyline.
* @return an id that can be used for adding points with {@link #addPointToPolyline}
*/
long addPolyline(Polyline polyline);
/**
* Add a point to a polyline
* @param id the id returned from {@link #addPolyline(Polyline)}
* @param point the point to add
*/
void addPointToPolyline(long id, IGeoPoint point);
/**
* Removes all markers, polylines, polygons, overlays, etc from the map.
*/
void clear();
/**
* Sets a callback that's invoked when the map view changes position.
*/
void setOnCameraChangeListener(OnCameraChangeListener listener);
}