summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java26
1 files changed, 21 insertions, 5 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index 3cb28ed395..5d8d0bbb84 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -32,6 +32,7 @@ import android.support.annotation.UiThread;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v4.view.ScaleGestureDetectorCompat;
+import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -123,7 +124,8 @@ public class MapView extends FrameLayout {
private NativeMapView mNativeMapView;
private boolean mHasSurface = false;
- private ViewGroup mMarkerViewContainer;
+ private ViewGroup mMarkerViewParentContainer;
+ private List<ViewGroup> mMarkerViewContainers;
private CompassView mCompassView;
private ImageView mLogoView;
private ImageView mAttributionsView;
@@ -227,7 +229,8 @@ public class MapView extends FrameLayout {
// Connectivity
onConnectivityChanged(isConnected());
- mMarkerViewContainer = (ViewGroup) view.findViewById(R.id.markerViewContainer);
+ mMarkerViewParentContainer = (ViewGroup) view.findViewById(R.id.markerViewContainer);
+ mMarkerViewContainers = new ArrayList<>();
mMyLocationView = (MyLocationView) view.findViewById(R.id.userLocationView);
mMyLocationView.setMapboxMap(mMapboxMap);
@@ -1203,8 +1206,21 @@ public class MapView extends FrameLayout {
/**
* @return the ViewGroup containing the marker views
*/
- public ViewGroup getMarkerViewContainer() {
- return mMarkerViewContainer;
+ public ViewGroup getMarkerViewContainer(Class markerViewClass) {
+ for (ViewGroup container : mMarkerViewContainers) {
+ if ((container.getTag().equals(markerViewClass))) {
+ return container;
+ }
+ }
+ throw new IllegalStateException("Container should be availlable for "+markerViewClass.toString());
+ }
+
+ public void addMarkerViewContainer(Class markerClass, int index){
+ FrameLayout markerViewContainer = new FrameLayout(getContext());
+ markerViewContainer.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ markerViewContainer.setTag(markerClass);
+ mMarkerViewParentContainer.addView(markerViewContainer, index);
+ mMarkerViewContainers.add(markerViewContainer);
}
@@ -1729,7 +1745,7 @@ public class MapView extends FrameLayout {
(tapPoint.y - mAverageIconHeight / 2 - toleranceTopBottom) / mScreenDensity,
(tapPoint.x + mAverageIconWidth / 2 + toleranceSides) / mScreenDensity,
(tapPoint.y + mAverageIconHeight / 2 + toleranceTopBottom) / mScreenDensity);
-
+
List<Marker> nearbyMarkers = getMarkersInRect(tapRect);
long newSelectedMarkerId = -1;