diff --git a/app/src/main/assets/locations.json b/app/src/main/assets/locations.json index 3a2a3c2..1bbddb1 100644 --- a/app/src/main/assets/locations.json +++ b/app/src/main/assets/locations.json @@ -1,12 +1,135 @@ [ { - "name": "kees kroket", - "coordinates": "2.4654645,6.2342323", - "description": "lekkere patatjes" + "name":"McDonald's Breda Karnemelkstraat", + "coordinates":"51.58596318905295,4.77586651481887", + "description":"McDonald's restaurant", + "imageUrl":"NULL" }, { - "name" : "locatie2", - "coordinates": "3.65656,9.564564", - "description": "locatie 2" + "name":"Subway Karnemelkstraat 10 A, 1", + "coordinates":"51.58632782568612,4.775219531501114", + "description":"4811 KJ Breda", + "imageUrl":"NULL" + }, + { + "name":"Wok To Go Halstraat 40", + "coordinates":"51.58650312572897,4.777467069592386", + "description":"4811HX Breda", + "imageUrl":"NULL" + }, + { + "name":"De Boterhal Grote Markt 19", + "coordinates":"51.588069667604756,4.7762685632180695", + "description":"4811XL Breda", + "imageUrl":"NULL" + }, + { + "name":"Gauchos Grote Markt 33", + "coordinates":"51.58859328857082,4.77601349563689", + "description":"4811XP Breda", + "imageUrl":"NULL" + }, + { + "name":"The Tosti Club Breda A4, Vlaszak 2", + "coordinates":"51.58905632735254,4.780729463841719", + "description":"4811GR Breda", + "imageUrl":"NULL" + }, + { + "name":"Coffee & Lunch 4 you Oude Vest 31", + "coordinates":"51.58741730235298,4.779832967540571", + "description":"4811HS Breda", + "imageUrl":"NULL" + }, + { + "name":"t Zusje Breda Vismarktstraat 28", + "coordinates":"51.590133292554434,4.773911506170458", + "description":"4811WE Breda", + "imageUrl":"NULL" + }, + { + "name":"VR-World Nassaustraat 2", + "coordinates":"51.5913566342086,4.786256804321071", + "description":"4811DD Breda", + "imageUrl":"NULL" + }, + { + "name":"Kees Kroket Houtmarkt 9", + "coordinates":"51.58647180329833,4.77741809637617", + "description":"KEEEEES KROKET!", + "imageUrl":"NULL" + }, + { + "name":"Prison Escape Kloosterlaan 168", + "coordinates":"51.59073795635181,4.784917104321059", + "description":"4811EE Breda", + "imageUrl":"NULL" + }, + { + "name":"De Koepel - FutureDome Events Nassausingel 26", + "coordinates":"51.590431588532105,4.786756741648511", + "description":"4811HP Breda", + "imageUrl":"NULL" + }, + + { + "name":"Escaping Breda: Escape Room Games Boschstraat 114", + "coordinates":" 51.59110835530862,4.784147222780912", + "description":"4811GK Breda", + "imageUrl":"NULL" + }, + { + "name":"MEZZ Breda Keizerstraat 101", + "coordinates":"51.58394697737321,4.779757901349616", + "description":"4811HL Breda", + "imageUrl":"NULL" + }, + { + "name":"Het Klooster Breda Schorsmolenstraat 13", + "coordinates":"51.58775443759389,4.765568874365066", + "description":"4811VN Breda", + "imageUrl":"NULL" + }, + { + "name":"Beach & Lounge club Spider “rooftop bar” Nieuwe Prinsenkade", + "coordinates":"51.59212977605884,4.774043765582372", + "description":"4811VC Breda", + "imageUrl":"NULL" + }, + { + "name":"Koningin Wilhelmina Paviljoen Kraanstraat 4b", + "coordinates":"51.590645369292396,4.776045124415531", + "description":"4811XV Breda", + "imageUrl":"NULL" + }, + { + "name":"Hercules en de Nemeïsche leeuw", + "coordinates":"51.59130522182325,4.778161739135078", + "description":"4811XJ Breda", + "imageUrl":"NULL" + }, + { + "name":"Nassau-Baroniemonument - 1905 - Pierre Cuypers Delpratsingel 1", + "coordinates":"51.592530636759136,4.780278353833301", + "description":"4811AM Breda", + "imageUrl":"NULL" + }, + { + "name":"Station Breda Gravinnen van Nassauboulevard 43", + "coordinates":"51.59569850758307,4.780295549958155", + "description":"4815CA Breda", + "imageUrl":"NULL" + }, + { + "name":"Belcrum Beach Veilingkade 12a", + "coordinates":"51.599434239284726,4.76632797992092", + "description":"4815HC Breda", + "imageUrl":"NULL" + }, + { + "name":"De Belcrum Watertoren (1935) Speelhuislaan 158", + "coordinates":"51.60135351009892,4.7705765989322755", + "description":"4815CJ Breda", + "imageUrl":"NULL" } ] \ No newline at end of file diff --git a/app/src/main/java/com/a1/nextlocation/data/Location.java b/app/src/main/java/com/a1/nextlocation/data/Location.java index 681f816..8185aea 100644 --- a/app/src/main/java/com/a1/nextlocation/data/Location.java +++ b/app/src/main/java/com/a1/nextlocation/data/Location.java @@ -1,14 +1,12 @@ package com.a1.nextlocation.data; -import android.os.Parcel; -import android.os.Parcelable; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.jetbrains.annotations.NotNull; +import org.osmdroid.util.GeoPoint; -public class Location implements Parcelable { +public class Location { @NonNull private String name; @@ -34,25 +32,6 @@ public class Location implements Parcelable { this(name,getStringFromCoordinates(latCoord,longCoord),description,imageUrl); } - protected Location(Parcel in) { - name = in.readString(); - coordinates = in.readString(); - description = in.readString(); - imageUrl = in.readString(); - } - - public static final Creator CREATOR = new Creator() { - @Override - public Location createFromParcel(Parcel in) { - return new Location(in); - } - - @Override - public Location[] newArray(int size) { - return new Location[size]; - } - }; - @NotNull public String getName() { return name; @@ -107,16 +86,8 @@ public class Location implements Parcelable { return lat1 + "," + long1; } - @Override - public int describeContents() { - return 0; + public GeoPoint convertToGeoPoint() { + return new GeoPoint(this.getLat(),this.getLong()); } - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(name); - dest.writeString(coordinates); - dest.writeString(description); - dest.writeString(imageUrl); - } } diff --git a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java index d6a06b4..8f5ba7d 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java @@ -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,21 @@ public class HomeFragment extends Fragment { mLocationOverlay.enableMyLocation(); mapView.getOverlays().add(mLocationOverlay); + CustomOverlay customOverlay = new CustomOverlay(getResources().getDrawable(R.drawable.ic_baseline_location_on_24),mapView); + + for (com.a1.nextlocation.data.Location l : LocationListManager.INSTANCE.getLocationList()) { + GeoPoint p = new GeoPoint(l.getLat(), l.getLong()); + OverlayItem overlayItem = new OverlayItem(l.getName(),l.getDescription(), p); + + customOverlay.addOverlayItem(overlayItem); + Log.d(TAG, "initMap: " + "succes"); + } + + + mapView.getOverlays().add(customOverlay); + + + // add the zoom controller IMapController mapController = mapView.getController(); mapController.setZoom(15.0); diff --git a/app/src/main/java/com/a1/nextlocation/recyclerview/CustomOverlay.java b/app/src/main/java/com/a1/nextlocation/recyclerview/CustomOverlay.java new file mode 100644 index 0000000..ccf5fe1 --- /dev/null +++ b/app/src/main/java/com/a1/nextlocation/recyclerview/CustomOverlay.java @@ -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 { + private final MapView mapView; + private ArrayList 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; + } +} diff --git a/app/src/main/java/com/a1/nextlocation/recyclerview/LocationListManager.java b/app/src/main/java/com/a1/nextlocation/recyclerview/LocationListManager.java index 9313e36..84e2eb9 100644 --- a/app/src/main/java/com/a1/nextlocation/recyclerview/LocationListManager.java +++ b/app/src/main/java/com/a1/nextlocation/recyclerview/LocationListManager.java @@ -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(); } + } diff --git a/app/src/main/res/drawable/ic_baseline_location_on_24.xml b/app/src/main/res/drawable/ic_baseline_location_on_24.xml index e6dfeb4..94b2681 100644 --- a/app/src/main/res/drawable/ic_baseline_location_on_24.xml +++ b/app/src/main/res/drawable/ic_baseline_location_on_24.xml @@ -5,6 +5,6 @@ android:viewportHeight="24" android:tint="?attr/colorControlNormal"> diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 1e43d91..b20724e 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ -