UNPKG

@uiw/react-baidu-map-api-loader

Version:

Baidu Map api-loader Components for React.

95 lines (94 loc) 3.02 kB
/** * 初始化和加载baidu地图 */ import React from 'react'; declare global { interface Window { BMap: any; [index: string]: () => any; } } export interface APILoaderConfig { /** * akay 密钥 * 您需先申请密钥(ak)才可使用该服务,接口无使用次数限制,请开发者放心使用。 * 文档说明地址:http://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/getkey * 申请秘钥地址:http://lbs.baidu.com/apiconsole/key?application=key */ akay?: string; /** * SDK 包版本 * @default 3.0 */ version?: string; /** * 协议,默认是根据当前网站协议的 */ protocol?: 'http' | 'https'; /** * 请求 SDK 的前半部分 * http://api.map.baidu.com/api?v=2.0&ak=E480562045 * @default api.map.baidu.com/api */ hostAndPath?: string; /** * JSONP 回调函数 */ callbackName?: string; /** * 百度地图JavaScript API GL v1.0是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。 * JavaScript API GL使用了WebGL对地图、覆盖物等进行渲染,支持3D视角展示地图。 GL版本接口基本向下兼容,迁移成本低。目前v1.0版本支持了基本的3D地图展示、基本地图控件和覆盖物。 */ type?: 'webgl'; /** * 禁用 SDK 加载,当你使用本地自己加载 SDK 可以设置为 true * ```html * <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> * ``` */ disableScripts?: boolean; } export declare function delay(time: number): Promise<undefined>; export interface APILoaderProps extends APILoaderConfig { /** * 用于展示加载中或错误状态 */ fallback?: (error?: Error) => React.ReactNode; } interface State { loaded: boolean; error?: Error; } /** * APILoader 用于加载百度地图依赖 */ export default class APILoader extends React.Component<React.PropsWithChildren<APILoaderProps>, State> { static defaultProps: { akay: string; hostAndPath: string; version: string; callbackName: string; type: string; }; private isMountedOk; /** * 全局可能存在多个Loader同时渲染, 但是只能由一个负责加载 */ private static waitQueue; /** * 等待BMap就绪 */ static ready(): Promise<unknown>; constructor(props: APILoaderProps); componentDidMount(): void; componentWillUnmount(): void; render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined; private getScriptSrc; /** * load BaiduMap in script tag */ private loadMap; private handleError; private finish; } export {};