/* * Copyright (C) 2013 Maciej Górski * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package pl.mg6.android.maps.extensions; import java.util.List; import android.location.Location; import android.view.View; import com.google.android.gms.maps.CameraUpdate; import com.google.android.gms.maps.LocationSource; import com.google.android.gms.maps.Projection; import com.google.android.gms.maps.UiSettings; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.CircleOptions; import com.google.android.gms.maps.model.GroundOverlayOptions; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.maps.model.PolygonOptions; import com.google.android.gms.maps.model.PolylineOptions; import com.google.android.gms.maps.model.TileOverlayOptions; public interface GoogleMap { int MAP_TYPE_HYBRID = com.google.android.gms.maps.GoogleMap.MAP_TYPE_HYBRID; int MAP_TYPE_NONE = com.google.android.gms.maps.GoogleMap.MAP_TYPE_NONE; int MAP_TYPE_NORMAL = com.google.android.gms.maps.GoogleMap.MAP_TYPE_NORMAL; int MAP_TYPE_SATELLITE = com.google.android.gms.maps.GoogleMap.MAP_TYPE_SATELLITE; int MAP_TYPE_TERRAIN = com.google.android.gms.maps.GoogleMap.MAP_TYPE_TERRAIN; Circle addCircle(CircleOptions circleOptions); GroundOverlay addGroundOverlay(GroundOverlayOptions groundOverlayOptions); Marker addMarker(MarkerOptions markerOptions); Polygon addPolygon(PolygonOptions polygonOptions); Polyline addPolyline(PolylineOptions polylineOptions); TileOverlay addTileOverlay(TileOverlayOptions tileOverlayOptions); void animateCamera(CameraUpdate cameraUpdate, CancelableCallback cancelableCallback); void animateCamera(CameraUpdate cameraUpdate, int time, CancelableCallback cancelableCallback); void animateCamera(CameraUpdate cameraUpdate); void clear(); CameraPosition getCameraPosition(); /** * Get a list of markers that could be clicked by user. This is a mix of normal (only visible) and cluster markers. * * @return list of markers that are displayed at current zoom level */ List<Marker> getDisplayedMarkers(); int getMapType(); /** * WARNING: may be changed in future API when this is fixed: http://code.google.com/p/gmaps-api-issues/issues/detail?id=5106 */ List<Circle> getCircles(); List<GroundOverlay> getGroundOverlays(); List<Marker> getMarkers(); Marker getMarkerShowingInfoWindow(); List<Polygon> getPolygons(); List<Polyline> getPolylines(); List<TileOverlay> getTileOverlays(); float getMaxZoomLevel(); float getMinZoomLevel(); /** * Get the minimum zoom level at which marker will be displayed. This function can take as a parameter only markers added via GoogleMap.addMarker and * visible. When clustering is not used, it will always return 0. * * <code> * float zoom = map.getMinZoomLevelNotClustered(marker); * map.animateCamera(CameraUpdateFactory.newLatLngZoom(marker.getPosition(), zoom)); * </code> * * @param marker * @return value in range [0, 25] inclusive or Float.POSITIVE_INFINITY when this marker is very near another visible marker */ float getMinZoomLevelNotClustered(Marker marker); Location getMyLocation(); Projection getProjection(); UiSettings getUiSettings(); boolean isIndoorEnabled(); boolean isMyLocationEnabled(); boolean isTrafficEnabled(); void moveCamera(CameraUpdate cameraUpdate); void setClustering(ClusteringSettings clusteringSettings); boolean setIndoorEnabled(boolean indoorEnabled); void setInfoWindowAdapter(InfoWindowAdapter infoWindowAdapter); void setLocationSource(LocationSource locationSource); void setMapType(int mapType); void setMyLocationEnabled(boolean myLocationEnabled); void setOnCameraChangeListener(OnCameraChangeListener onCameraChangeListener); void setOnInfoWindowClickListener(OnInfoWindowClickListener onInfoWindowClickListener); void setOnMapClickListener(OnMapClickListener onMapClickListener); void setOnMapLongClickListener(OnMapLongClickListener onMapLongClickListener); void setOnMarkerClickListener(OnMarkerClickListener onMarkerClickListener); void setOnMarkerDragListener(OnMarkerDragListener onMarkerDragListener); void setOnMyLocationChangeListener(OnMyLocationChangeListener onMyLocationChangeListener); void setTrafficEnabled(boolean trafficEnabled); void stopAnimation(); interface CancelableCallback extends com.google.android.gms.maps.GoogleMap.CancelableCallback { @Override void onCancel(); @Override void onFinish(); } interface InfoWindowAdapter { View getInfoContents(Marker marker); View getInfoWindow(Marker marker); } interface OnCameraChangeListener extends com.google.android.gms.maps.GoogleMap.OnCameraChangeListener { @Override void onCameraChange(CameraPosition cameraPosition); } interface OnInfoWindowClickListener { void onInfoWindowClick(Marker marker); } interface OnMapClickListener extends com.google.android.gms.maps.GoogleMap.OnMapClickListener { @Override void onMapClick(LatLng position); } interface OnMapLongClickListener extends com.google.android.gms.maps.GoogleMap.OnMapLongClickListener { @Override void onMapLongClick(LatLng position); } interface OnMarkerClickListener { boolean onMarkerClick(Marker marker); } interface OnMarkerDragListener { void onMarkerDragStart(Marker marker); void onMarkerDrag(Marker marker); void onMarkerDragEnd(Marker marker); } interface OnMyLocationChangeListener extends com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener { @Override public void onMyLocationChange(Location location); } }