npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-s-baidumap-wu

v1.3.2

Published

react-native 百度地图组件,支持 Android + iOS

Downloads

6

Readme

react-native-s-baidumap

百度地图 React Native 模块,同时支持ios和android,react native 0.60.0+。

支持模块:

  • 基础定位 ✅
  • 基础地图 ✅
  • 个性化地图 ✅
  • 离线地图 ✅
  • 绘制点标记 ✅
  • 绘制线 ✅
  • 绘制弧线和面 ✅
  • 自定义Infowindow
  • 点聚合
  • 绘制overlay
  • POI检索 ✅
  • 地点检索输入提示检索 ✅
  • 地理编码 ✅
  • 路线规划 ✅

DEMO预览

预览

百度离线地图

绘制弧线和面

安装

npm i react-native-s-baidumap

yarn add react-native-s-baidumap

配置

如果你使用的react native的版本>=0.60.0,则无需做多余配置,只需要配置百度地图申请的key。

Android配置:

在 AndroidManifest 中添加:

<application>
    <meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="你的key" />
</application>

IOS配置

第一步: 在Podfile文件中加入以下代码:

  pod 'BaiduMapKit', '5.1.0'
  pod 'BMKLocationKit', '1.8.0'

第二步: 在运行命令

cd ios && pod install

第三步: 等待安装成功后,进入ios工程文件夹,会看到一个.xcworkspace 结尾的文件 ,双击打开 在这里插入图片描述

第四步: 选中项目,右键添加文件 在这里插入图片描述 点击找到本项目node_modules下的react-native-s-baidumap -> iosLib -> RNSBaidumap, 将整个RNSBaidumap文件夹导入。 在这里插入图片描述

第五步: 需要添加桥接文件,选中项目右键,New File,选择h类型的头部文件创建,文件名为:你的项目名+-Bridging-Header,如:reactNativeSBaidumap-Bridging-Header。 在这里插入图片描述 然后在该文件中添加以下代码:

#import <React/RCTBridgeModule.h>
#import <React/RCTViewManager.h>
#import <React/RCTEventEmitter.h>
#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相关所有的头文件
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
#import <BaiduMapAPI_Search/BMKSearchComponent.h>//引入检索功能所有的头文件
#import <BMKLocationkit/BMKLocationComponent.h> //定位头文件

第六步: 配置桥接文件 : 在这里插入图片描述

第七步: 在AppDelegate.m文件中添加百度地图配置 在头部引入:

#import <BaiduMapAPI_Base/BMKBaseComponent.h>

在didFinishLaunchingWithOptions方法中配置:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  
  // 要使用百度地图,请先启动BaiduMapManager
  BMKMapManager *mapManager = [[BMKMapManager alloc] init];
  // 如果要关注网络及授权验证事件,请设定generalDelegate参数
  BOOL ret = [mapManager start:@"你申请的key"  generalDelegate:nil];
  if (!ret) {
    NSLog(@"baidumap manager start failed!");
  }
  
  ..........
}

到此配置结束。

MapView Props 属性

|Prop|Type |Default|Description| |--|--|--|--| | zoomControlsVisible | bool |false |显示放大缩小按钮| | isTrafficEnabled | bool |false |显示交通路线| | isBaiduHeatMapEnabled | bool |false |显示百度热力图层| | baiduMapType | number |1 |地图类型 1: 标准地图 2: 卫星地图 3:空白地图| | locationEnabled | bool |false |显示当前定位位置| | myLocationData | object |{} |显示当前定位数据, 使用该属性前locationEnabled必须设置为true| | zoom | number |18 |地图缩放级别[4,21]| | zoomMinLevel | number |4 |地图最小缩放级别,最小4| | zoomMaxLevel | number |21 |地图最大缩放级别,最大21| | centerLatLng | object |{} |地图中心点位置{latitude: ..., longitude: ...}| | zoomGesturesEnabled | bool |true |是否允许缩放手势| | scrollGesturesEnabled | bool |true |是否允许拖拽手势| | overlookingGesturesEnabled | bool |true |是否允许俯视手势| | rotateGesturesEnabled | bool |true |是否允许旋转手势| | mapCustomStyleFileName | string |”“ |用于设置个性化地图的样式文件| | onMapLoaded | func |()=>{} |地图加载完成回调| | onMapClick | func |()=>{} |点击地图回调| | onMapPoiClick | func |()=>{} |点击地图地点回调| | onMapLongClick | func |()=>{} |长按地图回调| | onMapDoubleClick | func |()=>{} |双击地图回调| | onMapStatusChangeStart | func |()=>{} |地图状态开始变化回调| | onMapStatusChange | func |()=>{} |地图状态变化中回调| | onMapStatusChangeFinish | func |()=>{} |地图状态变化结束回调| | onMarkerClick | func |()=>{} |点击marker回调| | onMarkerDragStart | func |()=>{} |拖拽marker开始回调| | onMarkerDrag | func |()=>{} |拖拽marker中回调| | onMarkerDragEnd | func |()=>{} |拖拽marker结束回调|

MapView 方法

|Methed| Description |Result | |--|--|--| | setCenter({latitude, longitude}) | 设置地图中心点位置 | | setZoom(number) | 设置地图缩放 | | setZoomToSpanMarkers( [{latitude, longitude}]) | 地图中所有的marker点显示在视图内 |

Marker属性

|Prop|Type |Default|Description| |--|--|--|--| | title | string |”“ |infowindow内容| | location | object |{latitude, longitude}|坐标| | icon | any ||Marker图片,支持本地与远程| | draggable | bool |false|是否可拖拽| | active | bool |false|是否显示infowind| | infoWindowYOffset | number |0|infowind y轴偏移,正数向下移动,负数向上移动| | scale | number |1|icon缩放大小, 仅android| | perspective | bool |false|是否开启近大远小效果, 仅android| | alpha | number |0|透明度, 仅android| | rotate | number |0|旋转角度, 仅android| | flat | bool |false|是否平贴地图, 仅android| | infoWindowMinHeight | number |100|infoWindow 最小高度, 仅android| | infoWindowMinWidth | number |200|infoWindow 最小宽度, 仅android| | infoWindowTextSize | number |16|infoWindow 字体, 仅android|

Polyline属性

|Prop|Type |Default|Description| |--|--|--|--| | points | LatLang[] |[] |折线坐标点列表,[{latitude, longitude}]| | color | string |#000000 |线条颜色,需要完整的rrggbb类型, 如:#000000| | width | number |6 |线条宽度|

Arc属性

|Prop|Type |Default|Description| |--|--|--|--| | points | LatLang[] |[] |弧线坐标点列表,[{latitude, longitude}]| | color | string |#000000 |线条颜色,需要完整的rrggbb类型, 如:#000000| | width | number |4 |线条宽度|

Circle属性

|Prop|Type |Default|Description| |--|--|--|--| | circleCenter | LatLang | |圆形中点| | color | string |#000000 |边框颜色,需要完整的rrggbb类型, 如:#000000| | width | number |4 |边框宽度| | radius | number |1400 |圆形半径| | fillColor | string |#F6000F |圆形背景颜色,android可使用十六进制控制透明度, ios使用fillColorAlpha属性| | fillColorAlpha | number |0.5 |圆形背景颜色透明度,仅ios|

Polygon属性

|Prop|Type |Default|Description| |--|--|--|--| | points | LatLang[] | |多边形坐标点列表| | color | string |#000000 |边框颜色,需要完整的rrggbb类型, 如:#000000| | width | number |4 |边框宽度| | fillColor | string |#F6000F |圆形背景颜色,android可使用十六进制控制透明度, ios使用fillColorAlpha属性| | fillColorAlpha | number |0.5 |圆形背景颜色透明度,仅ios|

Geolocation Methods

定位方法

|Method|Description |Result| |--|--|--| | initSDK(key) | ios使用定位前需要调用该方法 | | | start ()|开始持续定位 | | | stop() |停止持续定位 | | | addListener(func)|定位成功监听 | geolocation result|

地理编码

|Method|Description |Result| |--|--|--| | geocode(address, city) :Promise| 地理编码方法 | |

逆地理编码

|Method|Description |Result| |--|--|--| | reverseGeoCode(lat, lng) :Promise | 逆地理编码方法 | |

Search Methods

POI检索

|Method|Description |Result| |--|--|--| | searchInCity(city, keyword, pageNum): Promise | POI城市内检索(关键字检索) | search result| | searchNearby({latitude, longitude, keyword, pageNum, radius}): Promise |周边检索 | geolocation result|

地点检索

|Method|Description |Result| |--|--|--| | requestSuggestion(city, keyword): Promise | 输入提示检索 | search result|

RoutePlan Methods

|Method|Description |Result| |--|--|--| | walkingRouteSearch({startCity: 起点城市, startAddres: 起点位置, endCity: 终点城市, endAddres: 终点位置, city: 起点与终点是同一个城市, city, startCity, endCity同时使用,起点与终点都使用city}): Promise | 步行路线规划 | Route result| | drivingRouteSearch({startCity: 起点城市, startAddres: 起点位置, endCity: 终点城市, endAddres: 终点位置, city: 起点与终点是同一个城市, city, startCity, endCity同时使用,起点与终点都使用city, trafficPolicyType: 是否开起路况, drivingPolicyType: 驾车策略}): Promise | 驾车路线规划 | Route result| | bikingRouteSearch({startCity: 起点城市, startAddres: 起点位置, endCity: 终点城市, endAddres: 终点位置, city: 起点与终点是同一个城市, city, startCity, endCity同时使用,起点与终点都使用city, ridingType: 骑行类型(0:普通骑行模式,1:电动车模式)}): Promise | 骑行路线规划 | Route result| | transitRoutePlan({startCity: 起点城市, startAddres: 起点位置, endCity: 终点城市, endAddres: 终点位置, city: 起点与终点是同一个城市, city, startCity, endCity同时使用,起点与终点都使用city, policyType: 换乘策略}): Promise | 市内公交路线规划 | Route result|

OfflineMap Methods

|Method|Description |Result| |--|--|--| | start(cityId) |开始下载离线地图 | | | stop(cityId) |暂停下载离线地图 | | | remove(cityId) |删除已下载的离线地图 | | | update(cityId) |更新已下载的离线地图 | | | getHotCityList():Promise |获取热门城市 | {code,list:[]}| | searchCity():Promise |搜索城市 |{code,list:[]} | | getOfflineAllCityList() :Promise |获取所有支持离线地图的城市 |{code,list:[]} | | getDownloadedCityList() :Promise |获取已下载过的离线地图 |{code,list:[]} |

具体API用法可以参考example。