Skip to content

Commit 68d7d9d

Browse files
authored
chore: fixed algorithm samples (#1579)
* chore: fixed algorithm samples * Removed
1 parent d1ed72b commit 68d7d9d

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

demo/src/main/java/com/google/maps/android/utils/demo/ClusterAlgorithmsDemoActivity.kt

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616

1717
package com.google.maps.android.utils.demo
1818

19+
import android.os.Build
20+
import android.util.DisplayMetrics
1921
import android.view.View
22+
import android.view.WindowManager
2023
import android.widget.AdapterView
2124
import android.widget.ArrayAdapter
2225
import android.widget.Spinner
2326
import com.google.android.gms.maps.CameraUpdateFactory
24-
import com.google.android.gms.maps.MapView
2527
import com.google.android.gms.maps.model.LatLng
2628
import com.google.maps.android.clustering.ClusterManager
27-
import com.google.maps.android.clustering.algo.AbstractAlgorithm
2829
import com.google.maps.android.clustering.algo.CentroidNonHierarchicalDistanceBasedAlgorithm
2930
import com.google.maps.android.clustering.algo.ContinuousZoomEuclideanCentroidAlgorithm
3031
import com.google.maps.android.clustering.algo.GridBasedAlgorithm
@@ -40,7 +41,6 @@ import kotlin.random.Random
4041
class ClusterAlgorithmsDemoActivity : BaseDemoActivity() {
4142

4243
private var clusterManager: ClusterManager<MyItem>? = null
43-
private lateinit var mapView: MapView
4444

4545
override fun getLayoutId(): Int {
4646
return R.layout.activity_cluster_algorithms_demo
@@ -85,6 +85,28 @@ class ClusterAlgorithmsDemoActivity : BaseDemoActivity() {
8585
* Sets up the ClusterManager with the chosen algorithm and populates it with items.
8686
*/
8787
private fun setupClusterer(algorithmPosition: Int) {
88+
89+
val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager
90+
val metrics = DisplayMetrics()
91+
val width: Int
92+
val height: Int
93+
94+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
95+
// For devices with Android 11 (API 30) and above
96+
val windowMetrics = windowManager.currentWindowMetrics
97+
width = windowMetrics.bounds.width()
98+
height = windowMetrics.bounds.height()
99+
metrics.density = resources.displayMetrics.density
100+
} else {
101+
// For devices below Android 11
102+
windowManager.defaultDisplay.getMetrics(metrics)
103+
width = metrics.widthPixels
104+
height = metrics.heightPixels
105+
}
106+
107+
val widthDp = (width / metrics.density).toInt()
108+
val heightDp = (height / metrics.density).toInt()
109+
88110
// 1. Clear the map and previous cluster manager
89111
map.clear()
90112

@@ -96,9 +118,11 @@ class ClusterAlgorithmsDemoActivity : BaseDemoActivity() {
96118
1 -> GridBasedAlgorithm()
97119
2 -> NonHierarchicalDistanceBasedAlgorithm()
98120
3 -> CentroidNonHierarchicalDistanceBasedAlgorithm()
99-
4 -> NonHierarchicalViewBasedAlgorithm(mapView.width, mapView.height)
121+
4 -> NonHierarchicalViewBasedAlgorithm(widthDp, heightDp)
100122
5 -> ContinuousZoomEuclideanCentroidAlgorithm()
101-
else -> error("Unsupported algorithm position: $algorithmPosition")
123+
else -> {
124+
GridBasedAlgorithm()
125+
}
102126
}
103127

104128
// 4. Point the map's listeners to the ClusterManager

0 commit comments

Comments
 (0)