react-native-baidu-map使用及注意问题

简介: react-native-baidu-map使用及注意问题

使用组件:

react-native-baidu-map


获取百度地图API_KEY


地址:http://lbsyun.baidu.com,在控制台成功创建应用后,就可以看到应用的api key了

微信图片_20220609183945.png

安装


yarn add react-native-baidu-map

原生部分


Android配置
react-native link react-native-baidu-map
配置AndroidManifest.xml文件

1.在<application>中加入如下代码配置开发密钥(AK)

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>

2.在<application/>外部添加如下权限声明:

//获取设备网络状态,禁用后无法获取网络状态
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//网络权限,当禁用后,无法进行检索等相关业务
<uses-permission android:name="android.permission.INTERNET" />
//读取设备硬件信息,统计数据
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
//读取系统信息,包含系统版本等信息,用作统计
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//这个权限用于进行网络定位
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
//这个权限用于访问GPS定位
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
//获取统计数据
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//使用步行AR导航,配置Camera权限
<uses-permission android:name="android.permission.CAMERA" />
//程序在手机屏幕关闭后后台进程仍然运行
<uses-permission android:name="android.permission.WAKE_LOCK" />
IOS配置

使用pod,Podfile文件中添加

pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge',
    'DevSupport', 
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', 
    'RCTAnimation'
  ]
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  pod 'react-native-baidu-map', :podspec => '../node_modules/react-native-baidu-map/ios/react-native-baidu-map.podspec'
注意!!!:AppDelegate.m init 初始化,使用如下代码,可以解决RCTBaiduMapViewManager.h文件找不到的问题
#import <react-native-baidu-map/BaiduMapViewManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
    // 地图 ak 注册
    [BaiduMapViewManager initSDK:@""];
    ...
}

使用


导入
import { MapView, MapTypes, Geolocation, Overlay } from 'react-native-baidu-map'
const { Marker } = Overlay;
<MapView
         width={deviceWidth}
         height={200}
         zoom={18}
         trafficEnabled={true}
         zoomControlsVisible={true}
         mapType={MapTypes.SATELLITE}
         center={{ longitude: 116.465175, latitude: 39.938522 }}
>
        <Marker
            title='中心'
            location={{longitude: 116.465175, latitude: 39.938522}}
          />
</MapView>

效果,上图


微信图片_20220609183706.png

目录
相关文章
|
2月前
|
JavaScript 定位技术
Vue中使用百度地图demo Vue Baidu Map(vue-baidu-map)设置窗口信息
Vue中使用百度地图demo Vue Baidu Map(vue-baidu-map)设置窗口信息
76 0
|
前端开发 Android开发 iOS开发
React Native 引入Icon
React Native 引入Icon
103 0
|
11月前
|
前端开发 JavaScript Android开发
React Native详解和代码实例
@[TOC](目录) React Native 是一个用于构建原生移动应用程序的 JavaScript 框架。它使用 React 库,允许开发者使用 JavaScript 编写应用程序的 UI 和逻辑,并将其转换为本地平台(iOS 和 Android)上的原生视图。React Native 由 Facebook 开发,并于 2015 年发布。截至 2021 年,React Native 已经成为最受欢迎的跨平台移动应用程序开发框架之一。 在本详解中,我们将介绍 React Native 的主要特点、工作原理、优缺点以及代码示例。 # 一、React Native 的主要特点 1. 跨平台:Re
196 0
|
12月前
|
前端开发 容器
react map使用方法详解
react map使用方法详解
539 0
|
前端开发
React Native 加载base64图片
const {base64Image } = this.props; let baseImg=`data:image/png;base64,${base64Image}`;
2439 0
react-native-storage文档介绍
react-native-storage文档介绍
161 0
|
JavaScript 前端开发 Android开发
React Native之js调用Android原生使用Callback传递结果给js
React Native之js调用Android原生使用Callback传递结果给js
244 0
React Native之js调用Android原生使用Callback传递结果给js
|
资源调度 前端开发 Android开发
react-native init MyProject之后发生了什么
react-native init MyProject之后发生了什么
121 0
react-native init MyProject之后发生了什么
|
XML JSON 移动开发
react-native-easy-app 详解与使用之(二) fetch
react-native-easy-app 是一款为React Native App快速开发提供基础服务的纯JS库(**支持 IOS & Android**),特别是在从0到1的项目搭建初期,至少可以为开发者减少很多工作量。
1289 0
react-native-easy-app 详解与使用之(二) fetch
|
存储 移动开发 前端开发
react-native-easy-app 详解与使用之(一) AsyncStorage
react-native-easy-app 是一款为React Native App快速开发提供基础服务的纯JS库(支持 IOS & Android),特别是在从0到1的项目搭建初期,至少可以为开发者减少30%的工作量。
1848 0
react-native-easy-app 详解与使用之(一) AsyncStorage