diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2015-10-18 19:11:33 +0200 |
---|---|---|
committer | Leith Bade <leith@mapbox.com> | 2015-10-22 15:15:23 +1100 |
commit | 9fa48abf6e63bfca2699d17826c55dbabacf7fa6 (patch) | |
tree | 2c40b9497513e0edd2a23e4ca9029e66c0b63594 | |
parent | a6aade629b66cbc44dde9abc9d99acf3b97d0b7f (diff) | |
download | qtlocation-mapboxgl-9fa48abf6e63bfca2699d17826c55dbabacf7fa6.tar.gz |
[android] # 2659 - While zooming location change is incorrect
-rw-r--r-- | android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java index fec23d6ca9..618925945f 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java @@ -196,6 +196,7 @@ public final class MapView extends FrameLayout { private LostApiClient mLocationClient; private LocationRequest mLocationRequest; private ImageView mGpsMarker; + private float mGpsMarkerOffset; private Location mGpsLocation; private MyLocationListener mLocationListener; @@ -634,6 +635,10 @@ public final class MapView extends FrameLayout { mGpsMarker = new ImageView(getContext()); mGpsMarker.setImageResource(R.drawable.location_marker); mGpsMarker.setVisibility(View.INVISIBLE); + float iconSize = 27.0f * mScreenDensity; + mGpsMarkerOffset = iconSize/2; + FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams((int) iconSize, (int) iconSize); + mGpsMarker.setLayoutParams(lp); addView(mGpsMarker); // Setup compass @@ -3001,17 +3006,12 @@ public final class MapView extends FrameLayout { } private void updateGpsMarker() { - if (isMyLocationEnabled() && mGpsLocation != null) { + if (mIsMyLocationEnabled && mGpsLocation != null) { mGpsMarker.setVisibility(View.VISIBLE); LatLng coordinate = new LatLng(mGpsLocation); PointF screenLocation = toScreenLocation(coordinate); - - float iconSize = 27.0f * mScreenDensity; - // Update Location - FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams((int) iconSize, (int) iconSize); - lp.leftMargin = (int) (screenLocation.x - iconSize / 2.0f); - lp.topMargin = (int) (screenLocation.y + iconSize / 2.0f); - mGpsMarker.setLayoutParams(lp); + mGpsMarker.setX(screenLocation.x - mGpsMarkerOffset); + mGpsMarker.setY(screenLocation.y - mGpsMarkerOffset); rotateImageView(mGpsMarker, 0.0f); mGpsMarker.requestLayout(); } else { |