From 610b23b056f9ff5947cc1c72f6c9a20c8a1da137 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Thu, 17 Dec 2020 14:22:20 +0100 Subject: [PATCH 1/3] added custom overlay --- .../com/a1/nextlocation/data/Location.java | 5 +++ .../nextlocation/fragments/HomeFragment.java | 13 ++++++ .../recyclerview/CustomOverlay.java | 42 +++++++++++++++++++ .../recyclerview/LocationListManager.java | 3 ++ 4 files changed, 63 insertions(+) create mode 100644 app/src/main/java/com/a1/nextlocation/recyclerview/CustomOverlay.java 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 24422bb..8185aea 100644 --- a/app/src/main/java/com/a1/nextlocation/data/Location.java +++ b/app/src/main/java/com/a1/nextlocation/data/Location.java @@ -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()); + } + } 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..9aa91d5 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,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); 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(); } + } From 9c4eb98fb46fe4b3234040a3f6634aee827b9b65 Mon Sep 17 00:00:00 2001 From: Bipin Date: Thu, 17 Dec 2020 14:24:06 +0100 Subject: [PATCH 2/3] Added real locations to JSON --- app/src/main/assets/locations.json | 134 +++++++++++++++++++++++++++-- 1 file changed, 128 insertions(+), 6 deletions(-) diff --git a/app/src/main/assets/locations.json b/app/src/main/assets/locations.json index 3a2a3c2..7a03f48 100644 --- a/app/src/main/assets/locations.json +++ b/app/src/main/assets/locations.json @@ -1,12 +1,134 @@ [ { - "name": "kees kroket", - "coordinates": "2.4654645,6.2342323", - "description": "lekkere patatjes" + "name":"McDonald's Breda Karnemelkstraat", + "coordinates":"51.586106,4.775444", + "description":"McDonald's restaurant", + "imageUrl":"NULL" }, { - "name" : "locatie2", - "coordinates": "3.65656,9.564564", - "description": "locatie 2" + "name":"Subway Karnemelkstraat 10 A, 1", + "coordinates":"60.2101387,24.7109503", + "description":"4811 KJ Breda", + "imageUrl":"NULL" + }, + { + "name":"Wok To Go Halstraat 40", + "coordinates":"51.5887845,4.7760237", + "description":"4811HX Breda", + "imageUrl":"NULL" + }, + { + "name":"De Boterhal Grote Markt 19", + "coordinates":"51.5887845,4.7760237", + "description":"4811XL Breda", + "imageUrl":"NULL" + }, + { + "name":"Gauchos Grote Markt 33", + "coordinates":"51.5887845,4.7760237", + "description":"4811XP Breda", + "imageUrl":"NULL" + }, + { + "name":"The Tosti Club Breda A4, Vlaszak 2", + "coordinates":"51.5887845,4.7760237", + "description":"4811GR Breda", + "imageUrl":"NULL" + }, + { + "name":"Coffee & Lunch 4 you Oude Vest 31", + "coordinates":"51.5887845,4.7760237", + "description":"4811HS Breda", + "imageUrl":"NULL" + }, + { + "name":"t Zusje Breda Vismarktstraat 28", + "coordinates":"51.5887845,4.7760237", + "description":"4811WE Breda", + "imageUrl":"NULL" + }, + { + "name":"VR-World Nassaustraat 2", + "coordinates":"51.5887845,4.7760237", + "description":"4811DD Breda", + "imageUrl":"NULL" + }, + { + "name":"Kees Kroket Houtmarkt 9", + "coordinates":"51.5887845,4.7760237", + "description":"KEEEEES KROKET!", + "imageUrl":"NULL" + }, + { + "name":"Prison Escape Kloosterlaan 168", + "coordinates":"51.5887845,4.7760237", + "description":"4811EE Breda", + "imageUrl":"NULL" + }, + { + "name":"De Koepel - FutureDome Events Nassausingel 26", + "coordinates":"51.5887845,4.7760237", + "description":"4811HP Breda", + "imageUrl":"NULL" + }, + { + "name":"Escaping Breda: Escape Room Games Boschstraat 114", + "coordinates":" 51.5887845,4.7760237", + "description":"4811GK Breda", + "imageUrl":"NULL" + }, + { + "name":"MEZZ Breda Keizerstraat 101", + "coordinates":"51.5887845,4.7760237", + "description":"4811HL Breda", + "imageUrl":"NULL" + }, + { + "name":"Het Klooster Breda Schorsmolenstraat 13", + "coordinates":"51.5887845,4.7760237", + "description":"4811VN Breda", + "imageUrl":"NULL" + }, + { + "name":"Beach & Lounge club Spider “rooftop bar” Nieuwe Prinsenkade", + "coordinates":"51.5887845,4.7760237", + "description":"4811VC Breda", + "imageUrl":"NULL" + }, + { + "name":"Koningin Wilhelmina Paviljoen Kraanstraat 4b", + "coordinates":"51.5887845,4.7760237", + "description":"4811XV Breda", + "imageUrl":"NULL" + }, + { + "name":"Hercules en de Nemeïsche leeuw", + "coordinates":"51.5887845,4.7760237", + "description":"4811XJ Breda", + "imageUrl":"NULL" + }, + { + "name":"Nassau-Baroniemonument - 1905 - Pierre Cuypers Delpratsingel 1", + "coordinates":"51.5887845,4.7760237", + "description":"4811AM Breda", + "imageUrl":"NULL" + }, + { + "name":"Station Breda Gravinnen van Nassauboulevard 43", + "coordinates":"51.5887845,4.7760237", + "description":"4815CA Breda", + "imageUrl":"NULL" + }, + { + "name":"Belcrum Beach Veilingkade 12a", + "coordinates":"51.5887845,4.7760237", + "description":"4815HC Breda", + "imageUrl":"NULL" + }, + { + "name":"De Belcrum Watertoren (1935) Speelhuislaan 158", + "coordinates":"51.5887845,4.7760237", + "description":"4815CJ Breda", + "imageUrl":"NULL" } ] \ No newline at end of file From 1ca13e3a6b31290ee0f5e15cdeaf323224b1b7d0 Mon Sep 17 00:00:00 2001 From: Robin Koedood Date: Thu, 17 Dec 2020 14:45:58 +0100 Subject: [PATCH 3/3] [ADD]Locations from JSON now in app. Markers good color. No action bar. --- app/src/main/assets/locations.json | 45 ++++++++++--------- .../nextlocation/fragments/HomeFragment.java | 14 ++++-- .../drawable/ic_baseline_location_on_24.xml | 2 +- app/src/main/res/values-night/themes.xml | 2 +- app/src/main/res/values/themes.xml | 2 +- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/app/src/main/assets/locations.json b/app/src/main/assets/locations.json index 7a03f48..1bbddb1 100644 --- a/app/src/main/assets/locations.json +++ b/app/src/main/assets/locations.json @@ -1,133 +1,134 @@ [ { "name":"McDonald's Breda Karnemelkstraat", - "coordinates":"51.586106,4.775444", + "coordinates":"51.58596318905295,4.77586651481887", "description":"McDonald's restaurant", "imageUrl":"NULL" }, { "name":"Subway Karnemelkstraat 10 A, 1", - "coordinates":"60.2101387,24.7109503", + "coordinates":"51.58632782568612,4.775219531501114", "description":"4811 KJ Breda", "imageUrl":"NULL" }, { "name":"Wok To Go Halstraat 40", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58650312572897,4.777467069592386", "description":"4811HX Breda", "imageUrl":"NULL" }, { "name":"De Boterhal Grote Markt 19", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.588069667604756,4.7762685632180695", "description":"4811XL Breda", "imageUrl":"NULL" }, { "name":"Gauchos Grote Markt 33", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58859328857082,4.77601349563689", "description":"4811XP Breda", "imageUrl":"NULL" }, { "name":"The Tosti Club Breda A4, Vlaszak 2", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58905632735254,4.780729463841719", "description":"4811GR Breda", "imageUrl":"NULL" }, { "name":"Coffee & Lunch 4 you Oude Vest 31", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58741730235298,4.779832967540571", "description":"4811HS Breda", "imageUrl":"NULL" }, { "name":"t Zusje Breda Vismarktstraat 28", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.590133292554434,4.773911506170458", "description":"4811WE Breda", "imageUrl":"NULL" }, { "name":"VR-World Nassaustraat 2", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.5913566342086,4.786256804321071", "description":"4811DD Breda", "imageUrl":"NULL" }, { "name":"Kees Kroket Houtmarkt 9", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58647180329833,4.77741809637617", "description":"KEEEEES KROKET!", "imageUrl":"NULL" }, { "name":"Prison Escape Kloosterlaan 168", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.59073795635181,4.784917104321059", "description":"4811EE Breda", "imageUrl":"NULL" }, { "name":"De Koepel - FutureDome Events Nassausingel 26", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.590431588532105,4.786756741648511", "description":"4811HP Breda", "imageUrl":"NULL" }, + { "name":"Escaping Breda: Escape Room Games Boschstraat 114", - "coordinates":" 51.5887845,4.7760237", + "coordinates":" 51.59110835530862,4.784147222780912", "description":"4811GK Breda", "imageUrl":"NULL" }, { "name":"MEZZ Breda Keizerstraat 101", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58394697737321,4.779757901349616", "description":"4811HL Breda", "imageUrl":"NULL" }, { "name":"Het Klooster Breda Schorsmolenstraat 13", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.58775443759389,4.765568874365066", "description":"4811VN Breda", "imageUrl":"NULL" }, { "name":"Beach & Lounge club Spider “rooftop bar” Nieuwe Prinsenkade", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.59212977605884,4.774043765582372", "description":"4811VC Breda", "imageUrl":"NULL" }, { "name":"Koningin Wilhelmina Paviljoen Kraanstraat 4b", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.590645369292396,4.776045124415531", "description":"4811XV Breda", "imageUrl":"NULL" }, { "name":"Hercules en de Nemeïsche leeuw", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.59130522182325,4.778161739135078", "description":"4811XJ Breda", "imageUrl":"NULL" }, { "name":"Nassau-Baroniemonument - 1905 - Pierre Cuypers Delpratsingel 1", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.592530636759136,4.780278353833301", "description":"4811AM Breda", "imageUrl":"NULL" }, { "name":"Station Breda Gravinnen van Nassauboulevard 43", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.59569850758307,4.780295549958155", "description":"4815CA Breda", "imageUrl":"NULL" }, { "name":"Belcrum Beach Veilingkade 12a", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.599434239284726,4.76632797992092", "description":"4815HC Breda", "imageUrl":"NULL" }, { "name":"De Belcrum Watertoren (1935) Speelhuislaan 158", - "coordinates":"51.5887845,4.7760237", + "coordinates":"51.60135351009892,4.7705765989322755", "description":"4815CJ Breda", "imageUrl":"NULL" } 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 9aa91d5..8f5ba7d 100644 --- a/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java +++ b/app/src/main/java/com/a1/nextlocation/fragments/HomeFragment.java @@ -97,11 +97,17 @@ 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 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"); + } + - customOverlay.addOverlayItem(overlayItem); mapView.getOverlays().add(customOverlay); 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 @@ -