Code Monkey home page Code Monkey logo

baidumapkit's Introduction

react-native-baidu-map

百度地图的React-Native版本

example

'use strict';

import React, {
  AppRegistry,
  StyleSheet,
  Text,
  View,
} from 'react-native';

import BaiduMap from 'baidumapkit';


class BaiduMapExample extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          React Native Baidu MapView!
        </Text>
        <BaiduMap
          style={{flex:1}}
          marker={[
            [39.963175, 116.440244],
            [39.903175, 116.490244],
            [39.923175, 116.490244],
            [39.953175, 116.490244]]}
          mode={2} //1. 普通 2.卫星
          trafficEnabled={true} //城市实时交通图
          heatMapEnabled={true} //城市实时交通热力图
        />
      </View>
    );
  }
}

var styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    color: 'red',
    textAlign: 'center',
    margin: 10,
  }
});

AppRegistry.registerComponent('BaiduMapExample', () => BaiduMapExample);

效果图

react-native-baidu-map

step 1 install

$ npm install baidumapkit --save

Step 2 - Update Gradle Settings

// file: android/settings.gradle
...

include ':baidumapkit',  ':app'
project(':baidumapkit').projectDir = new File(rootProject.projectDir, '../node_modules/baidumapkit')

Step 3 - Update app Gradle Build

// file: android/app/build.gradle
...

dependencies {
    ...
    compile project(':baidumapkit')
}

Step 4 - Register React Package

public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {

  private ReactInstanceManager mReactInstanceManager;
  private ReactRootView mReactRootView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      //初始化百度地图
      SDKInitializer.initialize(getApplicationContext());

      mReactRootView = new ReactRootView(this);
      mReactInstanceManager = ReactInstanceManager.builder()
              .setApplication(getApplication())
              .setBundleAssetName("index.android.bundle")
              .setJSMainModuleName("index.android")
              .addPackage(new MainReactPackage())
              .addPackage(new BaiduMapReactPackage(this)) // <-- Register package here
              .setUseDeveloperSupport(true)
              .setInitialLifecycleState(LifecycleState.RESUMED)
              .build();

      mReactRootView.startReactApplication(mReactInstanceManager, "AwesomeProj", null);
      setContentView(mReactRootView);
  }

update AndroidManifest.xml,填写申请的app的key

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="百度注册的app的name">

    <!--地图要求的权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />


    <application
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">

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

</manifest>

At last, 祝玩得愉快。我会继续完善功能。

baidumapkit's People

Contributors

hufeng avatar shevawen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

baidumapkit's Issues

在RN 0.25中报告错误,同时RN的api应该是变了。

MainActivity中注册变成了:

protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        new MainReactPackage(),new BaiduMapReactPackage(this)
    );
}

编译过程中显示一大堆unknown source,类似:

Unknown source file : warning: Ignoring InnerClasses attribute for an anonymous inner class
Unknown source file : (com.baidu.platform.comapi.b) that doesn't come with an
Unknown source file : associated EnclosingMethod attribute. This class was probably produced by a
Unknown source file : compiler that did not target the modern .class file format. The recommended
Unknown source file : solution is to recompile the class from source, using an up-to-date compiler
Unknown source file : and without specifying any "-target" type options. The consequence of ignoring 。。。。。
,最后编译完毕,部署到真机或者模拟器,点击都会立即显示应用无法响应;logcat中显示一大堆错误,其中一个好像是初始化过程中的错误:

05-11 15:19:14.857: I/ReactNativeJS(18155): Running application "MyProject" with appParams: {"initialProps":{},"rootTag":1}. DEV === true, development-level warning are ON, performance optimizations are OFF
05-11 15:19:14.879: W/ReactNativeJS(18155): Warning: ReactNative.createElement is deprecated. Use React.createElement from the "react" package instead.
05-11 15:19:14.901: E/unknown:React(18155): Exception in native call from JS
05-11 15:19:14.901: E/unknown:React(18155): java.lang.IllegalStateException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
05-11 15:19:14.901: E/unknown:React(18155): at com.baidu.platform.comapi.a.b(Unknown Source)
05-11 15:19:14.901: E/unknown:React(18155): at com.baidu.mapapi.BMapManager.init(Unknown Source)
05-11 15:19:14.901: E/unknown:React(18155): at com.baidu.mapapi.map.MapView.a(Unknown Source)
05-11 15:19:14.901: E/unknown:React(18155): at com.baidu.mapapi.map.MapView.(Unknown Source)
05-11 15:19:14.901: E/unknown:React(18155): at com.bee.baidumapview.BaiduMapViewManager.createViewInstance(BaiduMapViewManager.java:112)
05-11 15:19:14.901: E/unknown:React(18155): at com.bee.baidumapview.BaiduMapViewManager.createViewInstance(BaiduMapViewManager.java:19)
05-11 15:19:14.901: E/unknown:React(18155): at com.facebook.react.uimanager.ViewManager.createView(ViewManager.java:44)
05-11 15:19:14.901: E/unknown:React(18155): at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManag

后边显示:
05-11 15:19:14.974: E/AndroidRuntime(18155): FATAL EXCEPTION: mqt_native_modules

代码是你的样例程序,不知道什么问题;
你能验证一下吗?

添加后react-native run-android出错

* What went wrong:
A problem occurred configuring project ':app'.
> A problem occurred configuring project ':baidumapkit'.
   > Could not resolve all dependencies for configuration ':baidumapkit:_debugCompile'.
      > Could not find com.android.support:appcompat-v7:23.1.1.
        Searched in the following locations:
            file:/Users/shevawen/.m2/repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
            file:/Users/shevawen/.m2/repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
            https://jcenter.bintray.com/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
            https://jcenter.bintray.com/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
            http://dl.bintray.com/mkonicek/maven/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
            http://dl.bintray.com/mkonicek/maven/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
            file:/Users/shevawen/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
            file:/Users/shevawen/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
            file:/Users/shevawen/Library/Android/sdk/extras/google/m2repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
            file:/Users/shevawen/Library/Android/sdk/extras/google/m2repository/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
        Required by:
            AlertsPro:baidumapkit:unspecified
      > Could not find com.android.support:appcompat-v7:23.1.1.

read me

compile project(':baidukitmap')
should be compile project(':baidumapkit')

这个版本不更新了吗?

按着步骤做的,始终报错,估计是版本太老了,rn已经更新到0.32.0了,我用的是0.31.0,不知道博主后期是否更新呢?

RN0.21报错

java.lang.AbstractMethodError: abstract method not implemented
                                                       at com.bee.baidumapview.BaiduMapShadowNode.measure(BaiduMapShadowNode.java)
                                                       at com.facebook.csslayout.CSSNode.measure(CSSNode.java:137)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:294)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:633)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNodeImpl(LayoutEngine.java:492)
                                                       at com.facebook.csslayout.LayoutEngine.layoutNode(LayoutEngine.java:210)
                                                       at com.facebook.csslayout.CSSNode.calculateLayout(CSSNode.java:146)
                                                       at com.facebook.react.uimanager.UIImplementation.calculateRootLayout(UIImplementation.java:674)
                                                       at com.facebook.react.uimanager.UIImplementation.dispatchViewUpdates(UIImplementation.java:445)
                                                       at com.facebook.react.uimanager.UIManagerModule.onBatchComplete(UIManagerModule.java:423)
                                                       at com.facebook.react.bridge.NativeModuleRegistry.onBatchComplete(NativeModuleRegistry.java:119)
                                                       at com.facebook.react.bridge.CatalystInstanceImpl$NativeModulesReactCallback.onBatchComplete(CatalystInstanceImpl.java:442)
                                                       at com.facebook.react.bridge.queue.NativeRunnableDeprecated.run(Native Method)
                                                       at android.os.Handler.handleCallback(Handler.java:733)
                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                       at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
                                                       at android.os.Looper.loop(Looper.java:136)
                                                       at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:184)
                                                       at java.lang.Thread.run(Thread.java:841)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.