Search in sources :

Example 1 with Marker

use of com.mapbox.mapboxsdk.annotations.Marker in project apps-android-commons by commons-app.

the class NearbyMapFragment method setupMapView.

private void setupMapView(Bundle savedInstanceState) {
    MapboxMapOptions options = new MapboxMapOptions().styleUrl(Style.OUTDOORS).camera(new CameraPosition.Builder().target(new LatLng(curLatLng.getLatitude(), curLatLng.getLongitude())).zoom(11).build());
    // create map
    mapView = new MapView(getActivity(), options);
    mapView.onCreate(savedInstanceState);
    mapView.getMapAsync(new OnMapReadyCallback() {

        @Override
        public void onMapReady(MapboxMap mapboxMap) {
            mapboxMap.addMarkers(baseMarkerOptions);
            mapboxMap.setOnMarkerClickListener(new MapboxMap.OnMarkerClickListener() {

                @Override
                public boolean onMarkerClick(@NonNull Marker marker) {
                    if (marker instanceof NearbyMarker) {
                        NearbyMarker nearbyMarker = (NearbyMarker) marker;
                        Place place = nearbyMarker.getNearbyBaseMarker().getPlace();
                        NearbyInfoDialog.showYourself(getActivity(), place);
                    }
                    return false;
                }
            });
            addCurrentLocationMarker(mapboxMap);
        }
    });
    if (PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean("theme", true)) {
        mapView.setStyleUrl(getResources().getString(R.string.map_theme_dark));
    } else {
        mapView.setStyleUrl(getResources().getString(R.string.map_theme_light));
    }
}
Also used : MapboxMapOptions(com.mapbox.mapboxsdk.maps.MapboxMapOptions) GsonBuilder(com.google.gson.GsonBuilder) NonNull(android.support.annotation.NonNull) MapView(com.mapbox.mapboxsdk.maps.MapView) OnMapReadyCallback(com.mapbox.mapboxsdk.maps.OnMapReadyCallback) LatLng(com.mapbox.mapboxsdk.geometry.LatLng) Marker(com.mapbox.mapboxsdk.annotations.Marker) MapboxMap(com.mapbox.mapboxsdk.maps.MapboxMap)

Example 2 with Marker

use of com.mapbox.mapboxsdk.annotations.Marker in project mapbox-plugins-android by mapbox.

the class GeoJsonPlugin method drawOnMap.

/**
 * Drawing {@link DataModel} element on to the map
 *
 * @param dataModel list of polylines, polygons, and points
 */
private void drawOnMap(DataModel dataModel) {
    if (dataModel != null) {
        List<MarkerData> markers = dataModel.getMarkers();
        if (markers != null) {
            if (!markers.isEmpty()) {
                for (MarkerData markerData : dataModel.getMarkers()) {
                    Marker marker = map.addMarker(new MarkerOptions().position(markerData.getPoint()));
                    markerCollectionHashMap.put(marker, markerData);
                }
            }
        }
        List<PolyData> polygons = dataModel.getPolygons();
        if (polygons != null) {
            if (!polygons.isEmpty()) {
                for (PolyData polyData : polygons) {
                    if (isRandomFillColor) {
                        fillColor = getRandomMaterialColor("400");
                    }
                    if (isRandomStockColor) {
                        stockColor = getRandomMaterialColor("400");
                    }
                    map.addPolygon(new PolygonOptions().addAll(polyData.getPoints()).fillColor(fillColor).strokeColor(stockColor));
                }
            }
        }
        List<PolyData> polylines = dataModel.getPolylines();
        if (polylines != null) {
            if (!polylines.isEmpty()) {
                for (PolyData polyData : polylines) {
                    if (isRandomStockColor) {
                        stockColor = getRandomMaterialColor("400");
                    }
                    map.addPolyline(new PolylineOptions().addAll(polyData.getPoints()).color(stockColor).width(width));
                }
            }
        }
        if (dataModel.getBounds() != null) {
            map.easeCamera(CameraUpdateFactory.newLatLngBounds(dataModel.getBounds(), 50), 500);
        }
        // set onMarkerClick Listener and pass properties of marker to the MarkerEventListener
        map.setOnMarkerClickListener(new MapboxMap.OnMarkerClickListener() {

            @Override
            public boolean onMarkerClick(@NonNull Marker marker) {
                MarkerData markerData = markerCollectionHashMap.get(marker);
                if (markerEventListener != null) {
                    markerEventListener.onMarkerClickListener(marker, markerData.getProperties());
                }
                return false;
            }
        });
    }
}
Also used : PolyData(com.mapbox.mapboxsdk.plugins.geojson.model.PolyData) MarkerData(com.mapbox.mapboxsdk.plugins.geojson.model.MarkerData) MarkerOptions(com.mapbox.mapboxsdk.annotations.MarkerOptions) PolygonOptions(com.mapbox.mapboxsdk.annotations.PolygonOptions) Marker(com.mapbox.mapboxsdk.annotations.Marker) MapboxMap(com.mapbox.mapboxsdk.maps.MapboxMap) PolylineOptions(com.mapbox.mapboxsdk.annotations.PolylineOptions)

Example 3 with Marker

use of com.mapbox.mapboxsdk.annotations.Marker in project osm-contributor by jawg.

the class MapboxListener method listen.

/**
 * Register the listener for the map
 * @param mapboxMap
 */
public void listen(final MapboxMap mapboxMap, final MapView mapView) {
    this.mapboxMap = mapboxMap;
    // Listen on map click
    mapboxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() {

        @Override
        public void onMapClick(@NonNull LatLng point) {
            MapboxListener.this.onMapClick();
        }
    });
    // Listen on marker click
    mapboxMap.setOnMarkerClickListener(new MapboxMap.OnMarkerClickListener() {

        @Override
        public boolean onMarkerClick(@NonNull Marker marker) {
            if (marker instanceof WayMarker) {
                WayMarker wayMarker = (WayMarker) marker;
                MapboxListener.this.onWayMarkerClick(wayMarker);
            }
            return false;
        }
    });
    // Listen on location and zoom change
    mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() {

        @Override
        public void onCameraChange(CameraPosition position) {
            // Location change, call the listener method
            if (MapboxListener.this.position != null) {
                if (!MapboxListener.this.position.target.equals(position.target)) {
                    onCameraPositionChange();
                }
                // Zoom change, call the listener method
                if (MapboxListener.this.position.zoom != position.zoom) {
                    onCameraZoomChange(position.zoom);
                }
            }
            MapboxListener.this.position = position;
        }
    });
    final ScaleGestureDetector scaleGestureDetector = new ScaleGestureDetector(mapFragment.getActivity(), new ZoomAnimationGestureDetector() {

        @Override
        public void onZoomAnimationEnd(ValueAnimator animator) {
            if (zoomValueAnimator != null && zoomValueAnimator.isRunning()) {
                zoomValueAnimator.cancel();
            }
            zoomValueAnimator = animator;
            zoomValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    CameraPosition position = mapboxMap.getCameraPosition();
                    mapboxMap.setCameraPosition(new CameraPosition.Builder().target(position.target).bearing(position.bearing).zoom(position.zoom + (Float) valueAnimator.getAnimatedValue()).build());
                }
            });
            zoomValueAnimator.start();
        }
    });
    mapView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            scaleGestureDetector.onTouchEvent(motionEvent);
            return false;
        }
    });
    // Listen on marker view click
    mapboxMap.getMarkerViewManager().setOnMarkerViewClickListener(new MapboxMap.OnMarkerViewClickListener() {

        @Override
        public boolean onMarkerClick(@NonNull Marker marker, @NonNull View view, @NonNull MapboxMap.MarkerViewAdapter adapter) {
            if (marker instanceof LocationMarkerView) {
                LocationMarkerView locationMarker = (LocationMarkerView) marker;
                MapboxListener.this.onLocationMarkerClick(locationMarker);
                return false;
            }
            return false;
        }
    });
}
Also used : WayMarker(io.jawg.osmcontributor.ui.utils.views.map.marker.WayMarker) Marker(com.mapbox.mapboxsdk.annotations.Marker) ValueAnimator(android.animation.ValueAnimator) ZoomAnimationGestureDetector(io.jawg.osmcontributor.ui.utils.ZoomAnimationGestureDetector) LocationMarkerView(io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerView) MapView(com.mapbox.mapboxsdk.maps.MapView) View(android.view.View) LocationMarkerView(io.jawg.osmcontributor.ui.utils.views.map.marker.LocationMarkerView) MotionEvent(android.view.MotionEvent) CameraPosition(com.mapbox.mapboxsdk.camera.CameraPosition) LatLng(com.mapbox.mapboxsdk.geometry.LatLng) ScaleGestureDetector(android.view.ScaleGestureDetector) MapboxMap(com.mapbox.mapboxsdk.maps.MapboxMap) WayMarker(io.jawg.osmcontributor.ui.utils.views.map.marker.WayMarker)

Example 4 with Marker

use of com.mapbox.mapboxsdk.annotations.Marker in project osm-contributor by jawg.

the class MapFragment method removePoiMarkerInError.

// markers were added on the map the sync failed we remove them
private void removePoiMarkerInError(Long id) {
    Marker m = markersPoi.remove(id).getMarker();
    if (m != null) {
        mapboxMap.removeMarker(m);
    }
    defaultMap();
}
Also used : Marker(com.mapbox.mapboxsdk.annotations.Marker) WayMarker(io.jawg.osmcontributor.ui.utils.views.map.marker.WayMarker)

Example 5 with Marker

use of com.mapbox.mapboxsdk.annotations.Marker in project osm-contributor by jawg.

the class MapFragment method removeNoteMarkerInError.

// note was added on the map the sync failed we remove it
private void removeNoteMarkerInError(Long id) {
    Marker m = markersNotes.remove(id).getMarker();
    if (m != null) {
        mapboxMap.removeMarker(m);
    }
    defaultMap();
}
Also used : Marker(com.mapbox.mapboxsdk.annotations.Marker) WayMarker(io.jawg.osmcontributor.ui.utils.views.map.marker.WayMarker)

Aggregations

Marker (com.mapbox.mapboxsdk.annotations.Marker)6 MapboxMap (com.mapbox.mapboxsdk.maps.MapboxMap)4 WayMarker (io.jawg.osmcontributor.ui.utils.views.map.marker.WayMarker)3 NonNull (android.support.annotation.NonNull)2 LatLng (com.mapbox.mapboxsdk.geometry.LatLng)2 MapView (com.mapbox.mapboxsdk.maps.MapView)2 ValueAnimator (android.animation.ValueAnimator)1 MotionEvent (android.view.MotionEvent)1 ScaleGestureDetector (android.view.ScaleGestureDetector)1 View (android.view.View)1 GsonBuilder (com.google.gson.GsonBuilder)1 MarkerOptions (com.mapbox.mapboxsdk.annotations.MarkerOptions)1 PolygonOptions (com.mapbox.mapboxsdk.annotations.PolygonOptions)1 PolylineOptions (com.mapbox.mapboxsdk.annotations.PolylineOptions)1 CameraPosition (com.mapbox.mapboxsdk.camera.CameraPosition)1 MapboxMapOptions (com.mapbox.mapboxsdk.maps.MapboxMapOptions)1 OnMapReadyCallback (com.mapbox.mapboxsdk.maps.OnMapReadyCallback)1 MarkerData (com.mapbox.mapboxsdk.plugins.geojson.model.MarkerData)1 PolyData (com.mapbox.mapboxsdk.plugins.geojson.model.PolyData)1 ZoomAnimationGestureDetector (io.jawg.osmcontributor.ui.utils.ZoomAnimationGestureDetector)1