2025年6月10日 星期二

google map sdk compose 的 infoWindow

 @SuppressLint("UnrememberedMutableState")

@Composable
fun InfoWindow(clusterMaker: ClusterMaker, selectedMarkerState: MarkerState) {

MarkerInfoWindowComposable(
state = selectedMarkerState,
anchor = Offset(0.5f, 1.7f),
zIndex = 20f,
onClick = {
true //自己控制
}
) {
Column(
modifier = Modifier
.background(Color.White, RoundedCornerShape(8.dp))
.border(
1.dp,
colorResource(id = R.color.black).copy(alpha = 0.5f),
RoundedCornerShape(8.dp)
)
.padding(12.dp)
) {

Text(text = (clusterMaker.event.title))
Text(text = clusterMaker.event.description)
}
}
}

2025年6月5日 星期四

定義 base,縮放時維持原固定大小

 //第一種做法

//固定14f1000公尺,照zoom level 變化
val baseZoomLevel = 14f
val baseRadiusMeters = 1000.0

val dynamicRadius by remember {
derivedStateOf {
val currentZoom = cameraPositionState.position.zoom
val scale = 2.0.pow((baseZoomLevel - currentZoom).toDouble())
baseRadiusMeters * scale
}
}

2025年6月3日 星期二

Google Map Compose 地圖限定區域

 var allowedBounds = remember {

    LatLngBounds(
LatLng(24.9, 121.4), // 西南角 (例如:台北市部分區域)
LatLng(25.1, 121.6) // 東北角
)
}

GoogleMap 的參數 latLngBoundsForCameraTarget = allowedBounds