summaryrefslogtreecommitdiff
path: root/android/java/MapboxGLAndroidSDK/src/main
diff options
context:
space:
mode:
authorJustin R. Miller <incanus@codesorcery.net>2015-09-07 11:29:06 -0700
committerJustin R. Miller <incanus@codesorcery.net>2015-09-07 12:09:48 -0700
commit1fd0cedfd608e216a1a88c397916c6e2b1b807dd (patch)
treeb1fe96cfefa9fbd3d5c954f8dff23e5c1d8d0e84 /android/java/MapboxGLAndroidSDK/src/main
parente8d415367e44662f4cfb7b8e1ac786affc07078a (diff)
downloadqtlocation-mapboxgl-1fd0cedfd608e216a1a88c397916c6e2b1b807dd.tar.gz
#894 - properly extend tap bounds for marker selection
Diffstat (limited to 'android/java/MapboxGLAndroidSDK/src/main')
-rw-r--r--android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java
index d7caf8539d..aed036f50c 100644
--- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java
+++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java
@@ -13,6 +13,7 @@ import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PointF;
+import android.graphics.RectF;
import android.hardware.GeomagneticField;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
@@ -1045,20 +1046,24 @@ public class MapView extends FrameLayout implements LocationListener {
PointF tapPoint = new PointF(x, y);
- float toleranceWidth = 60 * mScreenDensity;
- float toleranceHeight = 80 * mScreenDensity;
+ float toleranceWidth = 40 * mScreenDensity;
+ float toleranceHeight = 60 * mScreenDensity;
- PointF tr = new PointF(tapPoint.x + toleranceWidth / 2, tapPoint.y + 2 * toleranceHeight / 3);
- PointF bl = new PointF(tapPoint.x - toleranceWidth / 2, tapPoint.y - 1 * toleranceHeight / 3);
+ RectF tapRect = new RectF(tapPoint.x - toleranceWidth / 2, tapPoint.y - 2 * toleranceHeight / 3,
+ tapPoint.x + toleranceWidth / 2, tapPoint.y + 1 * toleranceHeight / 3);
- LatLng sw = fromScreenLocation(bl);
- LatLng ne = fromScreenLocation(tr);
+ List<LatLng> corners = Arrays.asList(
+ fromScreenLocation(new PointF(tapRect.left, tapRect.bottom)),
+ fromScreenLocation(new PointF(tapRect.left, tapRect.top)),
+ fromScreenLocation(new PointF(tapRect.right, tapRect.top)),
+ fromScreenLocation(new PointF(tapRect.right, tapRect.bottom))
+ );
- BoundingBox bbox = new BoundingBox(ne, sw);
+ BoundingBox tapBounds = BoundingBox.fromLatLngs(corners);
- addPolyline(new PolylineOptions().add(sw, ne).color(Color.RED).width(5));
+ addPolyline(new PolylineOptions().addAll(corners).add(corners.get(0)).color(Color.RED).width(2));
- List<Annotation> nearbyAnnotations = getAnnotationsInBounds(bbox);
+ List<Annotation> nearbyAnnotations = getAnnotationsInBounds(tapBounds);
long newSelectedAnnotationID = -1;