added custom overlay

This commit is contained in:
Sem van der Hoeven
2020-12-17 14:22:20 +01:00
parent 95a2e4e849
commit 610b23b056
4 changed files with 63 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.jetbrains.annotations.NotNull;
import org.osmdroid.util.GeoPoint;
public class Location {
@@ -85,4 +86,8 @@ public class Location {
return lat1 + "," + long1;
}
public GeoPoint convertToGeoPoint() {
return new GeoPoint(this.getLat(),this.getLong());
}
}

View File

@@ -5,6 +5,7 @@ package com.a1.nextlocation.fragments;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
@@ -22,6 +23,7 @@ import androidx.fragment.app.Fragment;
import com.a1.nextlocation.R;
import com.a1.nextlocation.data.Route;
import com.a1.nextlocation.recyclerview.CouponListManager;
import com.a1.nextlocation.recyclerview.CustomOverlay;
import com.a1.nextlocation.recyclerview.LocationListManager;
import com.a1.nextlocation.recyclerview.RouteListManager;
@@ -29,6 +31,8 @@ import org.osmdroid.api.IMapController;
import org.osmdroid.config.Configuration;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.Overlay;
import org.osmdroid.views.overlay.OverlayItem;
import org.osmdroid.views.overlay.compass.CompassOverlay;
import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider;
import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider;
@@ -93,6 +97,15 @@ public class HomeFragment extends Fragment {
mLocationOverlay.enableMyLocation();
mapView.getOverlays().add(mLocationOverlay);
CustomOverlay customOverlay = new CustomOverlay(getResources().getDrawable(R.drawable.common_google_signin_btn_icon_dark),mapView);
GeoPoint p = new GeoPoint(51.49635644532748, 4.2862774306334686);
OverlayItem overlayItem = new OverlayItem("willys","doner",p);
customOverlay.addOverlayItem(overlayItem);
mapView.getOverlays().add(customOverlay);
// add the zoom controller
IMapController mapController = mapView.getController();
mapController.setZoom(15.0);

View File

@@ -0,0 +1,42 @@
package com.a1.nextlocation.recyclerview;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import org.osmdroid.api.IMapView;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.ItemizedOverlay;
import org.osmdroid.views.overlay.OverlayItem;
import java.util.ArrayList;
public class CustomOverlay extends ItemizedOverlay<OverlayItem> {
private final MapView mapView;
private ArrayList<OverlayItem> overlayItems = new ArrayList<>();
public CustomOverlay(Drawable pDefaultMarker, MapView mapView) {
super(pDefaultMarker);
this.mapView = mapView;
}
public void addOverlayItem(OverlayItem item) {
overlayItems.add(item);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return overlayItems.get(i);
}
@Override
public int size() {
return overlayItems.size();
}
@Override
public boolean onSnapToItem(int x, int y, Point snapPoint, IMapView mapView) {
return true;
}
}

View File

@@ -4,6 +4,8 @@ import android.content.Context;
import com.a1.nextlocation.data.Location;
import org.osmdroid.util.GeoPoint;
import java.util.ArrayList;
import java.util.List;
@@ -30,4 +32,5 @@ public enum LocationListManager {
LocationLoader locationLoader = new LocationLoader(this.context);
this.locationList = locationLoader.load();
}
}