UNPKG

vuepress-plugin-photomap

Version:

VuePress2插件,用于在文章中插入照片地图组件,类似Apple相册的PhotoMap功能

112 lines (111 loc) 2.93 kB
/** * PhotoMap插件类型定义 */ export interface GPSData { latitude: number; longitude: number; altitude?: number; direction?: number; } export interface PhotoData { src: string; alt: string; gps?: GPSData; width?: number; height?: number; hasGPS: boolean; error?: string; } export interface PhotoMapOptions { mapStyle?: string; defaultZoom?: number; maxZoom?: number; markerSize?: number; clusterRadius?: number; enablePhotoSwipe?: boolean; photoSwipeOptions?: any; enableTerrain?: boolean; enableSatelliteHybrid?: boolean; enableAtmosphere?: boolean; terrainExaggeration?: number; mapTilerApiKey?: string; mapType?: 'satellite' | 'terrain' | 'simple'; enable3D?: boolean; showStyleSwitcher?: boolean; } export interface PhotoMapProps { images?: Array<{ src: string; alt: string; }>; height?: string; showPhotoList?: boolean; mapStyle?: string; defaultZoom?: number; maxZoom?: number; markerSize?: number; enablePhotoSwipe?: boolean; enableTerrain?: boolean; enableSatelliteHybrid?: boolean; enableAtmosphere?: boolean; terrainExaggeration?: number; mapTilerApiKey?: string; mapType?: 'satellite' | 'terrain' | 'simple'; enable3D?: boolean; showStyleSwitcher?: boolean; } export interface MapOptions { style?: string; defaultZoom?: number; maxZoom?: number; markerSize?: number; clusterRadius?: number; enableTerrain?: boolean; enableSatelliteHybrid?: boolean; enableAtmosphere?: boolean; terrainExaggeration?: number; mapTilerApiKey?: string; mapType?: 'satellite' | 'terrain' | 'simple'; } export interface PhotoSwipeOptions { enablePhotoSwipe?: boolean; photoSwipeOptions?: any; } export interface CoordinateInfo { latitude: number; longitude: number; altitude?: number; } export interface DMSCoordinate { degrees: number; minutes: number; seconds: number; direction: 'N' | 'S' | 'E' | 'W'; } export interface ImageInfo { src: string; alt: string; width: number; height: number; } export declare enum PhotoMapErrorType { IMAGE_LOAD_FAILED = "IMAGE_LOAD_FAILED", EXIF_PARSE_FAILED = "EXIF_PARSE_FAILED", NO_GPS_DATA = "NO_GPS_DATA", INVALID_COORDINATES = "INVALID_COORDINATES", MAP_INIT_FAILED = "MAP_INIT_FAILED", PHOTOSWIPE_INIT_FAILED = "PHOTOSWIPE_INIT_FAILED" } export interface PhotoMapEvents { onMapReady?: () => void; onPhotosLoaded?: (photos: PhotoData[]) => void; onMarkerClick?: (photo: PhotoData, index: number) => void; onPhotoSwipeOpen?: (photo: PhotoData, index: number) => void; onError?: (error: PhotoMapErrorType, message: string) => void; } declare global { interface Window { __PHOTOMAP_OPTIONS__?: PhotoMapOptions; __PHOTOMAP_DEBUG__?: boolean; } }