UNPKG

@uiw/react-baidu-map-map

Version:
121 lines (120 loc) 4.18 kB
import React, { FC, PropsWithChildren, CSSProperties } from 'react'; export * from './useMap'; export * from './context'; export interface Control { Control: BMap.Control; NavigationControl: BMap.NavigationControlOptions; OverviewMapControl: BMap.OverviewMapControlOptions; ScaleControl: BMap.ScaleControlOptions; MapTypeControl: BMap.MapTypeControlOptions; CopyrightControl: BMap.CopyrightControlOptions; GeolocationControl: BMap.GeolocationControlOptions; } export type ControlOptions = { name: keyof Control; options?: (bmap: typeof BMap, map: BMap.Map) => void; control?(bmap: typeof BMap, map: BMap.Map): BMap.Control; } | { name: keyof Control; options?: Control[keyof Control]; control?(bmap: typeof BMap, map: BMap.Map): BMap.Control; }; export type ControlOptionsAll = keyof Control | ControlOptions; export interface MapProps extends BMap.MapOptions, BMap.MapEvents { className?: React.HTMLAttributes<HTMLDivElement>['className']; style?: React.HTMLAttributes<HTMLDivElement>['style']; /** * 指定的容器 */ container?: HTMLDivElement | null | undefined; /** * 百度地图上负责与地图交互的UI元素称为控件。 */ widget?: (ControlOptionsAll | ControlOptions)[]; /** * 缩放等级 */ zoom?: number; /** * 定位, 可使用如 `上海市` 的地区字符串, * 也可以使用对象如 `{lng: 121.424333, lat: 31.228604}` 表示经纬度 */ center?: string | BMap.Point; /** * IP定位获取当前城市,进行自动定位 */ autoLocalCity?: boolean; /** 设置地图默认的鼠标指针样式。参数cursor应符合CSS的cursor属性规范 */ defaultCursor?: CSSProperties['cursor']; /** * 启用地图拖拽,默认启用 */ enableDragging?: boolean; /** * 启用滚轮放大缩小,默认禁用 */ enableScrollWheelZoom?: boolean; /** * 启用双击放大,默认启用 */ enableDoubleClickZoom?: boolean; /** * 启用地图惯性拖拽,默认禁用 */ enableInertialDragging?: boolean; /** * 启用连续缩放效果,默认禁用 */ enableContinuousZoom?: boolean; /** * 启用双指操作缩放,默认启用 */ enablePinchToZoom?: boolean; /** * 启用键盘操作,默认禁用。键盘的上、下、左、右键可连续移动地图。同时按下其中两个键可使地图进行对角移动。 * PgUp、PgDn、Home和End键会使地图平移其1/2的大小。+、-键会使地图放大或缩小一级 */ enableKeyboard?: boolean; /** * 设置地图个性化样式V2版本,仅支持现代浏览器(支持Canvas) */ mapStyleV2?: BMap.MapStyleV2; /** * 设置地图城市,注意当地图初始化时的类型设置为 `BMAP_NORMAL_MAP` 时, * 需要在调用 `centerAndZoom` 之前调用此方法设置地图所在城市。 * 例如: * @example * * ```js * var map = new BMap.Map(“container”, { mapType: BMAP_NORMAL_MAP }); * map.setCurrentCity(“北京市”); * map.centerAndZoom(new BMap.Point(116.404, 39.915), 18); * ``` * * 注意:初始化的坐标应与您设置的城市对应,否则地图将无法正常显示。 */ currentCity?: string; /** * 将全景实例与Map类进行绑定 */ panorama?: BMap.Panorama; viewport?: (view: Array<BMap.Point> | BMap.Viewport, viewportOptions: BMap.ViewportOptions) => void; children?: RenderProps['children']; } export type RenderProps = { children?: (data: { BMap: typeof BMap; map: BMap.Map; container?: HTMLDivElement | null; }) => React.ReactNode; } | { children?: React.ReactNode; }; export declare const Provider: FC<PropsWithChildren<RenderProps>>; export type MapRefs = MapProps & { map?: BMap.Map; BMap?: typeof BMap; container?: HTMLDivElement | null; }; declare const _default: React.ForwardRefExoticComponent<(MapProps & RenderProps) & React.RefAttributes<MapRefs>>; export default _default;