UNPKG

@r2don/react-naver-map

Version:

## Introduction

150 lines (149 loc) 5.99 kB
/// <reference types="navermaps" /> import { Cluster } from "./Cluster"; import type { ClusterOptions, OptionKey } from "./interface"; import type { Nullable } from "../types"; /** * 마커 클러스터링을 정의합니다. */ export declare class MarkerClustering extends naver.maps.OverlayView { _clusters: Array<Cluster>; _mapRelations: Nullable<naver.maps.MapEventListener>; _markerRelations: Array<naver.maps.MapEventListener>; _geoTree: null; constructor(options?: Partial<ClusterOptions>); onAdd(): void; onRemove(): void; /** * 마커 클러스터링 옵션을 설정합니다. 설정한 옵션만 반영됩니다. * @param newOptions 옵션 */ setOptions(newOptions: Partial<ClusterOptions>): void; /** * 마커 클러스터링 옵션을 반환합니다. 특정 옵션 이름을 지정하지 않으면, 모든 옵션을 반환합니다. * @param key 반환받을 옵션 이름 * @return 옵션 */ getOptions(key?: OptionKey): any; /** * 클러스터를 구성하는 최소 마커 수를 반환합니다. * @return 클러스터를 구성하는 최소 마커 수 */ getMinClusterSize(): ClusterOptions["minClusterSize"]; /** * 클러스터를 구성하는 최소 마커 수를 설정합니다. * @param minClusterSize 클러스터를 구성하는 최소 마커 수 */ setMinClusterSize(minClusterSize: ClusterOptions["minClusterSize"]): void; /** * 클러스터 마커를 노출할 최대 줌 레벨을 반환합니다. * @return 클러스터 마커를 노출할 최대 줌 레벨 */ getMaxZoom(): ClusterOptions["maxZoom"]; /** * 클러스터 마커를 노출할 최대 줌 레벨을 설정합니다. * @param maxZoom 클러스터 마커를 노출할 최대 줌 레벨 */ setMaxZoom(maxZoom: ClusterOptions["maxZoom"]): void; /** * 클러스터를 구성할 그리드 크기를 반환합니다. 단위는 픽셀입니다. * @return 클러스터를 구성할 그리드 크기 */ getGridSize(): ClusterOptions["gridSize"]; /** * 클러스터를 구성할 그리드 크기를 설정합니다. 단위는 픽셀입니다. * @param gridSize 클러스터를 구성할 그리드 크기 */ setGridSize(gridSize: ClusterOptions["gridSize"]): void; /** * 클러스터 마커의 아이콘을 결정하는 인덱스 생성기를 반환합니다. * @return 인덱스 생성기 */ getIndexGenerator(): ClusterOptions["indexGenerator"]; /** * 클러스터 마커의 아이콘을 결정하는 인덱스 생성기를 설정합니다. * @param indexGenerator 인덱스 생성기 */ setIndexGenerator(indexGenerator: ClusterOptions["indexGenerator"]): void; /** * 클러스터로 구성할 마커를 반환합니다. * @return 클러스터로 구성할 마커 */ getMarkers(): ClusterOptions["markers"]; /** * 클러스터로 구성할 마커를 설정합니다. * @param markers 클러스터로 구성할 마커 */ setMarkers(markers: ClusterOptions["markers"]): void; /** * 클러스터 마커 아이콘을 반환합니다. * @return 클러스터 마커 아이콘 */ getIcons(): ClusterOptions["icons"]; /** * 클러스터 마커 아이콘을 설정합니다. * @param icons 클러스터 마커 아이콘 */ setIcons(icons: ClusterOptions["icons"]): void; /** * 클러스터 마커의 엘리먼트를 조작할 수 있는 스타일링 함수를 반환합니다. * @return 콜백함수 */ getStylingFunction(): ClusterOptions["stylingFunction"]; /** * 클러스터 마커의 엘리먼트를 조작할 수 있는 스타일링 함수를 설정합니다. * @param stylingFunction 콜백함수 */ setStylingFunction(stylingFunction: ClusterOptions["stylingFunction"]): void; /** * 클러스터 마커를 클릭했을 때 줌 동작 수행 여부를 반환합니다. * @return 줌 동작 수행 여부 */ getDisableClickZoom(): ClusterOptions["disableClickZoom"]; /** * 클러스터 마커를 클릭했을 때 줌 동작 수행 여부를 설정합니다. * @param disableClickZoom 줌 동작 수행 여부 */ setDisableClickZoom(disableClickZoom: ClusterOptions["disableClickZoom"]): void; /** * 클러스터 마커의 위치를 클러스터를 구성하고 있는 마커의 평균 좌표로 할 것인지 여부를 반환합니다. * @return 평균 좌표로 클러스터링 여부 */ getAverageCenter(): ClusterOptions["averageCenter"]; draw(): void; /** * 클러스터 마커의 위치를 클러스터를 구성하고 있는 마커의 평균 좌표로 할 것인지 여부를 설정합니다. * @param averageCenter 평균 좌표로 클러스터링 여부 */ setAverageCenter(averageCenter: ClusterOptions["averageCenter"]): void; changed(key: OptionKey | "marker", value?: boolean): void; /** * 현재 지도 경계 영역 내의 마커에 대해 클러스터를 생성합니다. */ private _createClusters; /** * 클러스터의 아이콘, 텍스트를 갱신합니다. */ private _updateClusters; /** * 클러스터를 모두 제거합니다. */ private _clearClusters; /** * 생성된 클러스터를 모두 제거하고, 다시 생성합니다. */ private _redraw; /** * 전달된 위/경도에서 가장 가까운 클러스터를 반환합니다. 없으면 새로 클러스터를 생성해 반환합니다. * @param position 위/경도 * @return 클러스터 */ private _getClosestCluster; /** * 지도의 Idle 상태 이벤트 핸들러입니다. */ _onIdle(): void; /** * 각 마커의 드래그 종료 이벤트 핸들러입니다. */ _onDragEnd(): void; }