{"repo":"huiyan-fe/react-bmap","free":true,"listed":false,"github":"https://github.com/huiyan-fe/react-bmap","clone":"git clone https://github.com/huiyan-fe/react-bmap.git","description":"基于百度地图JavaScript API封装的React组件库","language":"JavaScript","stars":497,"topics":["javascript","map","bmap","react"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"React-BMap 用 React 组件写百度地图。地图、标注、路线、控件都是普通的 React 组件和 Hook，跟着 state 走，无需手动操作 DOM 或记 SDK 的命令式 API。一套代码同时支持百度地图 JSAPI 3.0（2D） 和 4.0（WebGL） 。 安装 需要 React 18+（ react / react-dom 为 peer 依赖）。 在 百度地图开放平台 申请一个浏览器端 ak 密钥即可， 不用 在 index.html 里手动加 ，组件库会自动加载地图脚本。 上手 1. 顶层放一个 Provider BMapProvider 负责加载地图并把密钥、版本传下去，通常放在应用最外层，只写一次。 - version=\"4.0\" （默认）：WebGL 三维地图，支持旋转、俯仰、3D。 - version=\"3.0\" ：传统 2D 地图，更轻量。 2. 放一张地图 Map 必须有确定的宽高，容器没高度会看不到地图。 3. 往地图里塞东西 覆盖物、控件都作为 Map 的子元素： 常见用法 点击地图 / 标注 覆盖物的点击回调会拿到经纬度： 用 state 驱动标注 标注就是数据的映射，增删改直接改 state： 画线、画圆 自定义标注图标 规划路线 检索类功能都以 Hook 提供，返回强类型结果，也可让它直接画到地图上： 地址转坐标（地理编码） 命令式操作地图 需要主动控制地图（飞到某点、缩放、坐标转换等）时，给 Map 一个 ref ： ref 上提供了地图的全量方法： panTo / flyTo / setZoom / setViewport / getBounds / pointToPixel / getScreenshot / 街景 / 视角动画等。 能用哪些组件 从 react-bmap 顶层直接 import，每个组件都带 TypeScript 类型。 - 覆盖物 ： Marker 、 Label 、 Polyline 、 Polygon 、 Circle 、 Rectangle 、 BezierCurve 、 Prism 、 GroundOverlay 、 GroundPoint 、 PointCollection 、 InfoWindow 、 SimpleInfoWindow 、 Symbol 、 Icon 、 IconSequence 、 Hotspot 、 CustomOverlay 、 Marker3D 、 MapMask 、 PlaceDetail 、 PlaceDetailPanel - 控件 ： NavigationControl 、 NavigationControl3D 、 ScaleControl 、 OverviewMapControl 、 MapTypeControl 、 CopyrightControl 、 GeolocationControl 、 PanoramaControl 、 ZoomControl 、 CityListControl 、 LocationControl 、 LogoControl - 图层 ： TileLayer 、 NormalLayer 、 GeoJSONLayer 、 DistrictLayer 、 TrafficLayer 、 CustomLayer 、 CanvasLayer 、 RasterTileLayer 、 FeatureLayer 、 FillLayer 、 DOMLayer 、 PointIconLayer 、 PointShapeL","default_branch":null,"files":null,"tree":[],"storefront":"/r/huiyan-fe","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/huiyan-fe/react-bmap/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}