added doc
This commit is contained in:
parent
4ff5b18998
commit
92bcb8473c
|
@ -89,7 +89,6 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/build-info" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundle_manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check_manifest_result" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/compatible_screen_manifest" />
|
||||
|
@ -97,12 +96,10 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-apk" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_app_manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_app_info_output_file" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_main_apk_resources" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_merged_manifests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_split_apk_resources" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||
|
@ -177,6 +174,7 @@
|
|||
<orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.persistence.room:common:1.1.1@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-basement:16.0.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: com.google.maps.android:android-maps-utils:0.5@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
|
||||
|
|
|
@ -30,6 +30,7 @@ dependencies {
|
|||
implementation 'com.android.support:design:28.0.0'
|
||||
implementation 'com.android.support:support-v4:28.0.0'
|
||||
implementation 'com.google.android.gms:play-services-maps:16.1.0'
|
||||
implementation 'com.google.maps.android:android-maps-utils:0.5+'
|
||||
implementation 'android.arch.persistence.room:runtime:1.1.1'
|
||||
implementation 'com.google.android.gms:play-services-location:16.0.0'
|
||||
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package at.fhj.airkoality.model;
|
||||
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.maps.android.clustering.ClusterItem;
|
||||
|
||||
public class MapClusterItem implements ClusterItem {
|
||||
|
||||
|
||||
private LatLng position;
|
||||
private String titel;
|
||||
private String snippet;
|
||||
|
||||
public MapClusterItem(LatLng position, String titel, String snippet) {
|
||||
this.position = position;
|
||||
this.titel = titel;
|
||||
this.snippet = snippet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LatLng getPosition() {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return titel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSnippet() {
|
||||
return snippet;
|
||||
}
|
||||
}
|
|
@ -17,13 +17,14 @@ import com.google.android.gms.maps.MapView;
|
|||
import com.google.android.gms.maps.OnMapReadyCallback;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.Marker;
|
||||
import com.google.android.gms.maps.model.MarkerOptions;
|
||||
import com.google.maps.android.clustering.ClusterManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import at.fhj.airkoality.R;
|
||||
import at.fhj.airkoality.db.room.AirKoalityDB;
|
||||
import at.fhj.airkoality.model.Location;
|
||||
import at.fhj.airkoality.model.MapClusterItem;
|
||||
import at.fhj.airkoality.ui.activity.MeasurementActivity;
|
||||
|
||||
public class MapFragment extends Fragment implements OnMapReadyCallback, GoogleMap.OnInfoWindowClickListener {
|
||||
|
@ -31,6 +32,7 @@ public class MapFragment extends Fragment implements OnMapReadyCallback, GoogleM
|
|||
private MapView mapView;
|
||||
private GoogleMap map;
|
||||
private AirKoalityDB database;
|
||||
private ClusterManager<MapClusterItem> clusterManager;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
|
@ -64,15 +66,14 @@ public class MapFragment extends Fragment implements OnMapReadyCallback, GoogleM
|
|||
new Thread(() -> {
|
||||
List<Location> locations = database.locationDAO().getAll();
|
||||
getActivity().runOnUiThread(() -> {
|
||||
map.clear();
|
||||
clusterManager.clearItems();
|
||||
for (Location location : locations) {
|
||||
MarkerOptions markerOptions = new MarkerOptions()
|
||||
.title(location.getLocation())
|
||||
.snippet(location.getCity() + ", " + location.getCountry())
|
||||
.position(new LatLng(location.getLatitude(), location.getLongitude()));
|
||||
MapClusterItem item = new MapClusterItem(new LatLng(location.getLatitude(), location.getLongitude()),location.getLocation(),location.getCity() + ", " + location.getCountry());
|
||||
|
||||
map.addMarker(markerOptions);
|
||||
|
||||
clusterManager.addItem(item);
|
||||
}
|
||||
clusterManager.cluster();
|
||||
});
|
||||
}).start();
|
||||
}
|
||||
|
@ -86,6 +87,10 @@ public class MapFragment extends Fragment implements OnMapReadyCallback, GoogleM
|
|||
map = googleMap;
|
||||
map.setOnInfoWindowClickListener(this);
|
||||
enableMyLocation();
|
||||
|
||||
clusterManager = new ClusterManager<>(getContext(), map);
|
||||
map.setOnCameraIdleListener(clusterManager);
|
||||
map.setOnMapClickListener(clusterManager);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -92,4 +92,9 @@ Notifications benötigen immer einen Channel und Channel ID (ab Android O verfü
|
|||
|
||||
## 17.05.2019 - Online
|
||||
|
||||
Map Fragment implementiert
|
||||
|
||||
|
||||
## 18.05.2019 - Online
|
||||
|
||||
Clustering von Map Fragment um Performance der App zu optimieren -> Je nach Zoomfaktor werden MapMarker gruppiert.
|
Loading…
Reference in New Issue