@r2don/react-naver-map
Version:
## Introduction
150 lines (149 loc) • 5.99 kB
TypeScript
/// <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;
}