Class MapUtils

java.lang.Object
mil.nga.geopackage.map.MapUtils

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

    • MapUtils

      public MapUtils()
  • Method Details

    • 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