Open note11g opened 2 months ago
많은 api 추가가 예상되므로, 버전 1.3.0에서 해당 변경사항들이 제공될 계획입니다.
iOS의 경우 업데이트 시, pod 오류가 발생합니다. 이 오류를 해결하기 위해, 다음 과정을 진행해주시기 바랍니다.
flutter_naver_map: ^1.3.0
)cd ios
& pod update
추후 내용 추가 예정입니다.
NaverMap(
clusterOptions: NaverMapClusterOptions(
enableZoomLevel: NMapRange(null, 17, includeMax: false),
animate: true,
margeStrategy: NClusterMergeStrategy(
// 태그 병합이 거리 병합보다 우선됩니다.
enableMergeByTag: true,
mergeByEachTagEnableZoomLevel: <String, NMapRange>{
"gu": NMapRange(11, 13, includeMax: false),
"dong": NMapRange(13, 15),
},
/// 마커간의 거리가 70dp 이하인 경우 병합
mergeByScreenDistance: 70,
// mergeByScreenDistanceEnableZoomLevel: NMapRange(13, null, includeMin: false), // 필요한지 검토
/// 200dp보다 멀리 떨어져있는 경우에는 병합하지 않음. 탐색 공간 제한.
maxMergeableScreenDistance: 200,
),
clusterMarkerBuilder: (info, clusterMarker) {
final tag = info.isMergedByTag ? info.children.first.tag : null;
final icon = switch(info.size) {
>= 100 => highDensityIcon,
>= 30 => midDensityIcon,
_ => lowDensityIcon,
};
clusterMarker
..setIcon(icon)
..setCaption(tag != null ? NOverlayCaption(text: tag) : null)
..setSubCaption(info.size);
}, // build (marker.setVisible(true)) after running this function.
),
)
final restaurants = await RestaurantAPI.requestBy(region: "Seoul");
final markers = restaurants.map(
(restaurant) => NClusterableMarker(
id: restaurant.id,
icon: restaurantIcon,
caption: NOverlayCaption(text: restaurant.name),
tags: <String, String>{
"gu": restaurant.addr.gu,
"dong": restaurant.addr.dong,
},
)).toSet();
await mapController.addOverlayAll(markers);
// 만약, 줌 레벨의 변경 없이 변경된 병합 전략에 따라 클러스터링을 초기화하고 싶다면
// await mapController.refreshClustering();
클러스터링 기능의 Preview 버전의 출시일을 안내드립니다. Android Only Preview: 검수 이전 버전 5/6(월), 검수 이후 버전 5/7(화) All Platform(Android+iOS) Support Preview: 5/8(수)
이후 사용자 피드백을 수렴하여 5월 3주차에 정식으로 1.3.0 버전이 출시될 예정입니다.
TODO
forceRefresh
) 68940adc6f6a8870db8d4be89de2fa68399b279b일정상 여건이 된다면,