@uiw/react-baidu-map-map
Version:
Baidu Map Components for React.
121 lines (120 loc) • 4.18 kB
TypeScript
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;