Class MapUtils


  • public class MapUtils
    extends Object
    Map utilities
    Since:
    2.0.0
    • Constructor Detail

      • MapUtils

        public MapUtils()
    • Method Detail

      • getCurrentZoom

        public static float getCurrentZoom​(GoogleMap map)
        Get the current zoom level of the map
        Parameters:
        map - google map
        Returns:
        current zoom level
      • getToleranceDistance

        public static double getToleranceDistance​(View view,
                                                  GoogleMap map)
        Get the tolerance distance meters in the current region of the visible map. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        view - view
        map - google map
        Returns:
        tolerance distance in meters
      • getToleranceDistance

        public static double getToleranceDistance​(View view,
                                                  BoundingBox boundingBox,
                                                  Projection projection)
        Get the tolerance distance meters in the current region of the visible map projected bounds. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        view - view
        boundingBox - bounding box
        projection - bounding box projection
        Returns:
        tolerance distance in meters
        Since:
        6.3.1
      • getToleranceDistance

        public static double getToleranceDistance​(View view,
                                                  BoundingBox boundingBox)
        Get the tolerance distance meters in the current region of the visible map bounds. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        view - view
        boundingBox - WGS84 bounding box
        Returns:
        tolerance distance in meters
        Since:
        6.3.1
      • getToleranceDistance

        public static double getToleranceDistance​(int viewWidth,
                                                  int viewHeight,
                                                  GoogleMap map)
        Get the tolerance distance meters in the current region of the visible map. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        viewWidth - view width
        viewHeight - view height
        map - google map
        Returns:
        tolerance distance in meters
        Since:
        6.3.1
      • getToleranceDistance

        public static double getToleranceDistance​(int viewWidth,
                                                  int viewHeight,
                                                  BoundingBox boundingBox,
                                                  Projection projection)
        Get the tolerance distance meters in the current region of the visible map projected bounds. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        viewWidth - view width
        viewHeight - view height
        boundingBox - bounding box
        projection - bounding box projection
        Returns:
        tolerance distance in meters
        Since:
        6.3.1
      • getToleranceDistance

        public static double getToleranceDistance​(int viewWidth,
                                                  int viewHeight,
                                                  BoundingBox boundingBox)
        Get the tolerance distance meters in the current region of the visible map bounds. Tolerance distance can be used for geometry simplification and is approximately the number of meters per view pixel.
        Parameters:
        viewWidth - view width
        viewHeight - view height
        boundingBox - WGS84 bounding box
        Returns:
        tolerance distance in meters
        Since:
        6.3.1
      • getWGS84BoundingBox

        public static BoundingBox getWGS84BoundingBox​(BoundingBox boundingBox,
                                                      Projection projection)
        Get a WGS84 Bounding Box from a projected bounding box
        Parameters:
        boundingBox - bounding box
        projection - bounding box projection
        Returns:
        WGS84 bounding box
        Since:
        6.3.1
      • getBoundingBox

        public static BoundingBox getBoundingBox​(GoogleMap map)
        Get the WGS84 bounding box of the current map view screen. The max longitude will be larger than the min resulting in values larger than 180.0.
        Parameters:
        map - google map
        Returns:
        current bounding box
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLng latLng,
                                                        View view,
                                                        GoogleMap map,
                                                        float screenClickPercentage)
        Build a bounding box using the click location, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLng latLng,
                                                        PixelBounds pixelBounds,
                                                        View view,
                                                        GoogleMap map,
                                                        float screenClickPercentage)
        Build a bounding box using the click location, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLng latLng,
                                                        double zoom,
                                                        PixelBounds pixelBounds,
                                                        View view,
                                                        GoogleMap map,
                                                        float screenClickPercentage)
        Build a bounding box using the click location, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLng latLng,
                                                        float density,
                                                        double zoom,
                                                        PixelBounds pixelBounds,
                                                        View view,
                                                        GoogleMap map,
                                                        float screenClickPercentage)
        Build a bounding box using the click location, display density, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        density - display density: DisplayMetrics.density
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLngBoundingBox boundingBox)
        Build a bounding box using the click location
        Parameters:
        boundingBox - click bounding box
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickLatLngBounds

        public static LatLngBounds buildClickLatLngBounds​(LatLng latLng,
                                                          View view,
                                                          GoogleMap map,
                                                          float screenClickPercentage)
        Build a lat lng bounds using the click location, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
      • buildClickLatLngBounds

        public static LatLngBounds buildClickLatLngBounds​(LatLng latLng,
                                                          PixelBounds pixelBounds,
                                                          View view,
                                                          GoogleMap map,
                                                          float screenClickPercentage)
        Build a lat lng bounds using the click location, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickLatLngBounds

        public static LatLngBounds buildClickLatLngBounds​(LatLng latLng,
                                                          double zoom,
                                                          PixelBounds pixelBounds,
                                                          View view,
                                                          GoogleMap map,
                                                          float screenClickPercentage)
        Build a lat lng bounds using the click location, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • buildClickLatLngBounds

        public static LatLngBounds buildClickLatLngBounds​(LatLng latLng,
                                                          float density,
                                                          double zoom,
                                                          PixelBounds pixelBounds,
                                                          View view,
                                                          GoogleMap map,
                                                          float screenClickPercentage)
        Build a lat lng bounds using the click location, display density, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        density - display density: DisplayMetrics.density
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - view
        map - Google map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • getToleranceDistance

        public static double getToleranceDistance​(LatLng latLng,
                                                  View view,
                                                  GoogleMap map,
                                                  float screenClickPercentage)
        Get the allowable tolerance distance in meters from the click location on the map view and map with the screen percentage tolerance.
        Parameters:
        latLng - click location
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        tolerance distance in meters
      • getToleranceDistance

        public static double getToleranceDistance​(LatLng latLng,
                                                  PixelBounds pixelBounds,
                                                  View view,
                                                  GoogleMap map,
                                                  float screenClickPercentage)
        Get the allowable tolerance distance in meters from the click location on the map view and map with the screen percentage tolerance.
        Parameters:
        latLng - click location
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        tolerance distance in meters
        Since:
        6.3.0
      • getToleranceDistance

        public static double getToleranceDistance​(LatLng latLng,
                                                  double zoom,
                                                  PixelBounds pixelBounds,
                                                  View view,
                                                  GoogleMap map,
                                                  float screenClickPercentage)
        Get the allowable tolerance distance in meters from the click location on the map view and map with the screen percentage tolerance.
        Parameters:
        latLng - click location
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        tolerance distance in meters
        Since:
        6.3.0
      • getToleranceDistance

        public static double getToleranceDistance​(LatLng latLng,
                                                  float density,
                                                  double zoom,
                                                  PixelBounds pixelBounds,
                                                  View view,
                                                  GoogleMap map,
                                                  float screenClickPercentage)
        Get the allowable tolerance distance in meters from the click location on the map view and map with the screen percentage tolerance.
        Parameters:
        latLng - click location
        density - display density: DisplayMetrics.density
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        tolerance distance in meters
        Since:
        6.3.0
      • getToleranceDistance

        public static double getToleranceDistance​(LatLng latLng,
                                                  LatLngBoundingBox boundingBox)
        Get the allowable tolerance distance in meters from the click bounding box
        Parameters:
        latLng - click location
        boundingBox - click bounding box
        Returns:
        tolerance distance in meters
        Since:
        6.3.0
      • getToleranceDistance

        public static double getToleranceDistance​(LatLngBoundingBox boundingBox)
        Get the allowable tolerance distance in meters from the click bounding box
        Parameters:
        boundingBox - click bounding box
        Returns:
        tolerance distance in meters
        Since:
        6.3.0
      • buildClickLatLngBoundingBox

        public static LatLngBoundingBox buildClickLatLngBoundingBox​(LatLng latLng,
                                                                    View view,
                                                                    GoogleMap map,
                                                                    float screenClickPercentage)
        Build a lat lng bounding box using the click location, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        lat lng bounding box
      • buildClickLatLngBoundingBox

        public static LatLngBoundingBox buildClickLatLngBoundingBox​(LatLng latLng,
                                                                    PixelBounds pixelBounds,
                                                                    View view,
                                                                    GoogleMap map,
                                                                    float screenClickPercentage)
        Build a lat lng bounding box using the click location, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        lat lng bounding box
        Since:
        6.3.0
      • buildClickLatLngBoundingBox

        public static LatLngBoundingBox buildClickLatLngBoundingBox​(LatLng latLng,
                                                                    double zoom,
                                                                    PixelBounds pixelBounds,
                                                                    View view,
                                                                    GoogleMap map,
                                                                    float screenClickPercentage)
        Build a lat lng bounding box using the click location, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        lat lng bounding box
        Since:
        6.3.0
      • buildClickLatLngBoundingBox

        public static LatLngBoundingBox buildClickLatLngBoundingBox​(LatLng latLng,
                                                                    float density,
                                                                    double zoom,
                                                                    PixelBounds pixelBounds,
                                                                    View view,
                                                                    GoogleMap map,
                                                                    float screenClickPercentage)
        Build a lat lng bounding box using the click location, display density, zoom level, pixel bounds, map view, map, and screen percentage tolerance. The bounding box can be used to query for features that were clicked
        Parameters:
        latLng - click location
        density - display density: DisplayMetrics.density
        zoom - current zoom level
        pixelBounds - click pixel bounds
        view - map view
        map - map
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        lat lng bounding box
        Since:
        6.3.0
      • buildClickLatLngBoundingBox

        public static LatLngBoundingBox buildClickLatLngBoundingBox​(LatLng latLng,
                                                                    BoundingBox mapBounds,
                                                                    float screenClickPercentage)
        Build a bounding box using the location coordinate click location and map view bounds
        Parameters:
        latLng - click location
        mapBounds - map bounds
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        lat lng bounding box
        Since:
        6.3.1
      • buildClickBoundingBox

        public static BoundingBox buildClickBoundingBox​(LatLng latLng,
                                                        BoundingBox mapBounds,
                                                        float screenClickPercentage)
        Build a bounding box using the location coordinate click location and map view bounds
        Parameters:
        latLng - click location
        mapBounds - map bounds
        screenClickPercentage - screen click percentage between 0.0 and 1.0 for how close a feature on the screen must be to be included in a click query
        Returns:
        bounding box
        Since:
        6.3.0
      • isPointOnShape

        public static boolean isPointOnShape​(LatLng point,
                                             GoogleMapShape shape,
                                             boolean geodesic,
                                             double tolerance)
        Is the point on or near the shape
        Parameters:
        point - lat lng point
        shape - map shape
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        true if point is on shape
      • isPointNearMarker

        public static boolean isPointNearMarker​(LatLng point,
                                                MarkerOptions shapeMarker,
                                                double tolerance)
        Is the point near the shape marker
        Parameters:
        point - point
        shapeMarker - shape marker
        tolerance - distance tolerance
        Returns:
        true if near
      • isPointNearPoint

        public static boolean isPointNearPoint​(LatLng point,
                                               LatLng shapePoint,
                                               double tolerance)
        Is the point near the shape point
        Parameters:
        point - point
        shapePoint - shape point
        tolerance - distance tolerance
        Returns:
        true if near
      • isPointNearMultiLatLng

        public static boolean isPointNearMultiLatLng​(LatLng point,
                                                     MultiLatLng multiLatLng,
                                                     double tolerance)
        Is the point near any points in the multi lat lng
        Parameters:
        point - point
        multiLatLng - multi lat lng
        tolerance - distance tolerance
        Returns:
        true if near
      • isPointOnPolyline

        public static boolean isPointOnPolyline​(LatLng point,
                                                PolylineOptions polyline,
                                                boolean geodesic,
                                                double tolerance)
        Is the point on the polyline
        Parameters:
        point - point
        polyline - polyline
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        true if on the line
      • isPointOnMultiPolyline

        public static boolean isPointOnMultiPolyline​(LatLng point,
                                                     MultiPolylineOptions multiPolyline,
                                                     boolean geodesic,
                                                     double tolerance)
        Is the point on the multi polyline
        Parameters:
        point - point
        multiPolyline - multi polyline
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        true if on the multi line
      • isPointOnPolygon

        public static boolean isPointOnPolygon​(LatLng point,
                                               PolygonOptions polygon,
                                               boolean geodesic,
                                               double tolerance)
        Is the point of the polygon
        Parameters:
        point - point
        polygon - polygon
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        true if on the polygon
      • isPointOnMultiPolygon

        public static boolean isPointOnMultiPolygon​(LatLng point,
                                                    MultiPolygonOptions multiPolygon,
                                                    boolean geodesic,
                                                    double tolerance)
        Is the point on the multi polygon
        Parameters:
        point - point
        multiPolygon - multi polygon
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        true if on the multi polygon
      • isPointOnShapeDistance

        public static Double isPointOnShapeDistance​(LatLng point,
                                                    GoogleMapShape shape,
                                                    boolean geodesic,
                                                    double tolerance)
        Is the point on or near the shape, returning the distance when on the shape
        Parameters:
        point - lat lng point
        shape - map shape
        geodesic - geodesic check flag
        tolerance - distance tolerance
        Returns:
        distance when on shape, -1.0 when distance not calculated, null when not on shape
        Since:
        6.3.1
      • isPointNearMarkerDistance

        public static Double isPointNearMarkerDistance​(LatLng point,
                                                       MarkerOptions shapeMarker,
                                                       double tolerance)
        Is the point near the shape marker, returning the distance when on marker
        Parameters:
        point - point
        shapeMarker - shape marker
        tolerance - distance tolerance
        Returns:
        distance when on marker, null when not
        Since:
        6.3.1
      • isPointNearPointDistance

        public static Double isPointNearPointDistance​(LatLng point,
                                                      LatLng shapePoint,
                                                      double tolerance)
        Is the point near the shape point, returning the distance when on point
        Parameters:
        point - point
        shapePoint - shape point
        tolerance - distance tolerance
        Returns:
        distance when on point, null when not
        Since:
        6.3.1
      • isPointNearMultiLatLngDistance

        public static Double isPointNearMultiLatLngDistance​(LatLng point,
                                                            MultiLatLng multiLatLng,
                                                            double tolerance)
        Is the point near any points in the multi lat lng, returning the nearest distance when on multi lat lng
        Parameters:
        point - point
        multiLatLng - multi lat lng
        tolerance - distance tolerance
        Returns:
        distance when on multi lat lng, null when not
        Since:
        6.3.1