Add getVisibleCoordinateBounds method. (#109)
* Update visible region constructor doc. * Add getVisibleCoordinateBounds method. * Fix LatLngBounds#contains method, update to use Map::latLngBoundsForCameraUnwrapped(const CameraOptions& camera) on native side. * Revert changes in LatLngBounds#contains.
This commit is contained in:
@@ -373,7 +373,7 @@ public class LatLngBounds implements Parcelable {
|
||||
|
||||
private boolean containsLongitude(final double longitude) {
|
||||
return (longitude <= this.longitudeEast)
|
||||
&& (longitude >= this.longitudeWest);
|
||||
&& (longitude >= this.longitudeWest);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -54,10 +54,10 @@ public class VisibleRegion implements Parcelable {
|
||||
/**
|
||||
* Creates a VisibleRegion given the four corners of the camera.
|
||||
*
|
||||
* @param farLeft A LatLng object containing the latitude and longitude of the near left corner of the region.
|
||||
* @param farRight A LatLng object containing the latitude and longitude of the near left corner of the region.
|
||||
* @param farLeft A LatLng object containing the latitude and longitude of the far left corner of the region.
|
||||
* @param farRight A LatLng object containing the latitude and longitude of the far right corner of the region.
|
||||
* @param nearLeft A LatLng object containing the latitude and longitude of the near left corner of the region.
|
||||
* @param nearRight A LatLng object containing the latitude and longitude of the near left corner of the region.
|
||||
* @param nearRight A LatLng object containing the latitude and longitude of the near right corner of the region.
|
||||
* @param latLngBounds The smallest bounding box that includes the visible region defined in this class.
|
||||
*/
|
||||
public VisibleRegion(LatLng farLeft, LatLng farRight, LatLng nearLeft, LatLng nearRight, LatLngBounds latLngBounds) {
|
||||
|
||||
@@ -195,6 +195,8 @@ interface NativeMap {
|
||||
|
||||
void pixelsForLatLngs(@NonNull double[] input, @NonNull double[] output);
|
||||
|
||||
void getVisibleCoordinateBounds(@NonNull double[] output);
|
||||
|
||||
LatLng latLngForPixel(@NonNull PointF pixel);
|
||||
|
||||
void latLngsForPixels(@NonNull double[] input, @NonNull double[] output);
|
||||
|
||||
@@ -650,6 +650,13 @@ final class NativeMapView implements NativeMap {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getVisibleCoordinateBounds(@NonNull double[] output) {
|
||||
if (!checkState("getVisibleCoordinateBounds")) {
|
||||
nativeGetVisibleCoordinateBounds(output);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public LatLng latLngForPixel(@NonNull PointF pixel) {
|
||||
if (checkState("latLngForPixel")) {
|
||||
@@ -1282,6 +1289,9 @@ final class NativeMapView implements NativeMap {
|
||||
@Keep
|
||||
private native void nativePixelsForLatLngs(double[] input, double[] output, float pixelRatio);
|
||||
|
||||
@Keep
|
||||
private native void nativeGetVisibleCoordinateBounds(double[] output);
|
||||
|
||||
@NonNull
|
||||
@Keep
|
||||
private native LatLng nativeLatLngForPixel(float x, float y);
|
||||
|
||||
@@ -203,6 +203,19 @@ public class Projection {
|
||||
LatLngBounds.from(north, east, south, west));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a projection of the viewing frustum for converting between screen coordinates and
|
||||
* geo-latitude/longitude coordinate bounds.
|
||||
* <p>
|
||||
* This method ignores the content padding.
|
||||
*
|
||||
* @param bounds an array of 4 output values representing bounds(in the order of latNorth,
|
||||
* lonEast, latSouth, lonWest).
|
||||
*/
|
||||
public void getVisibleCoordinateBounds(@NonNull double[] bounds) {
|
||||
nativeMapView.getVisibleCoordinateBounds(bounds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes two {@link Point}s and finds the geographic bearing between them.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user