Remove crosshair from map

This commit is contained in:
Mieszko Wrzeszczyński 2018-11-20 23:46:38 +01:00
parent 8a29b93533
commit 688341e072

View File

@ -3,14 +3,6 @@ package com.uam.wmi.findmytutor.utils;
import android.animation.TypeEvaluator; import android.animation.TypeEvaluator;
import android.content.Context; import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import com.mapbox.mapboxsdk.annotations.Polygon; import com.mapbox.mapboxsdk.annotations.Polygon;
import com.mapbox.mapboxsdk.annotations.PolygonOptions; import com.mapbox.mapboxsdk.annotations.PolygonOptions;
import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraPosition;
@ -19,8 +11,6 @@ import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.geometry.LatLngBounds;
import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.style.layers.FillLayer;
import com.mapbox.mapboxsdk.style.layers.Layer;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -38,11 +28,9 @@ public class mapUtils {
.add(WMI_BOUNDS.getNorthEast()) .add(WMI_BOUNDS.getNorthEast())
.add(WMI_BOUNDS.getSouthEast()) .add(WMI_BOUNDS.getSouthEast())
.add(WMI_BOUNDS.getSouthWest()) .add(WMI_BOUNDS.getSouthWest())
.alpha(0.1f) .alpha(0.0f);
.fillColor(Color.YELLOW);
// For adding and removing // For adding and removing
private static Polygon polygon; private static Polygon polygon;
private static View crosshair;
// Map Bounds Area // Map Bounds Area
public static void setMapBoundsArea(Context context, MapboxMap mapboxMap, MapView mapView, Boolean check) { public static void setMapBoundsArea(Context context, MapboxMap mapboxMap, MapView mapView, Boolean check) {
@ -50,28 +38,22 @@ public class mapUtils {
if (check) { if (check) {
// Set bounds to WMI // Set bounds to WMI
mapboxMap.setLatLngBoundsForCameraTarget(WMI_BOUNDS); mapboxMap.setLatLngBoundsForCameraTarget(WMI_BOUNDS);
makeNewCamera(mapboxMap, 52.466799, 16.927002, 17, 0, 0,4000); makeNewCamera(mapboxMap, 52.466799, 16.927002, 17, 0, 0, 4000);
mapboxMap.setMinZoomPreference(16); // TODO export to map config mapboxMap.setMinZoomPreference(16); // TODO export to map config
// Visualise bounds area // Visualise bounds area
// showBoundsArea // showBoundsArea
polygon = mapboxMap.addPolygon(boundsArea); polygon = mapboxMap.addPolygon(boundsArea);
// showCrosshair
crosshair = new View(context);
crosshair.setLayoutParams(new FrameLayout.LayoutParams(15, 15, Gravity.CENTER));
crosshair.setBackgroundColor(Color.GREEN);
mapView.addView(crosshair);
} else { } else {
mapboxMap.setLatLngBoundsForCameraTarget(null); mapboxMap.setLatLngBoundsForCameraTarget(null);
mapboxMap.setMinZoomPreference(2); mapboxMap.setMinZoomPreference(2);
mapboxMap.removePolygon(polygon); mapboxMap.removePolygon(polygon);
mapView.removeView(crosshair);
} }
} }
public static void makeNewCamera(MapboxMap mapboxMap, double lat, double lon, int zoomParam, int bearingParam, int tiltParam, int duration){ public static void makeNewCamera(MapboxMap mapboxMap, double lat, double lon, int zoomParam, int bearingParam, int tiltParam, int duration) {
CameraPosition position = new CameraPosition.Builder() CameraPosition position = new CameraPosition.Builder()
.target(new LatLng(lat, lon)) // Sets the new camera position .target(new LatLng(lat, lon)) // Sets the new camera position
.zoom(zoomParam) // Sets the zoom .zoom(zoomParam) // Sets the zoom
@ -83,22 +65,6 @@ public class mapUtils {
.newCameraPosition(position), duration); .newCameraPosition(position), duration);
} }
// Function for marker animation
public static class LatLngEvaluator implements TypeEvaluator<LatLng> {
// Method is used to interpolate the marker animation.
private LatLng latLng = new LatLng();
@Override
public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) {
latLng.setLatitude(startValue.getLatitude()
+ ((endValue.getLatitude() - startValue.getLatitude()) * fraction));
latLng.setLongitude(startValue.getLongitude()
+ ((endValue.getLongitude() - startValue.getLongitude()) * fraction));
return latLng;
}
}
// read file to JSON // read file to JSON
public static String loadJsonFromAsset(Context context, String filename) { public static String loadJsonFromAsset(Context context, String filename) {
// Using this method to load in GeoJSON files from the assets folder. // Using this method to load in GeoJSON files from the assets folder.
@ -116,4 +82,20 @@ public class mapUtils {
} }
} }
// Function for marker animation
public static class LatLngEvaluator implements TypeEvaluator<LatLng> {
// Method is used to interpolate the marker animation.
private LatLng latLng = new LatLng();
@Override
public LatLng evaluate(float fraction, LatLng startValue, LatLng endValue) {
latLng.setLatitude(startValue.getLatitude()
+ ((endValue.getLatitude() - startValue.getLatitude()) * fraction));
latLng.setLongitude(startValue.getLongitude()
+ ((endValue.getLongitude() - startValue.getLongitude()) * fraction));
return latLng;
}
}
} }