我现在需要一个地图的功能,我想问下有什么推荐的第三方吗



  • 我在github上搜不到什么好项目,最好的也就200多颗star,而且作者维护也不是很积极,不是很敢用,有没有国内的比较官方的依赖



  • 就我所知,国内没有官方的 RN SDK,唯一有官方支持的地图组件是 react-native-mapbox-gl,但是就国内来说,不如高德、百度地图,而且提供的接口不够丰富。

    如果你的 app 不考虑国内 android,那么最好的选择是 react-native-maps,5k+ stars、由 airbnb 维护、接口完善,很棒的项目。但其中 android 用的是 google maps,所以你懂的。

    我的项目也用到地图组件,正如你所见,没有可用的地图组件,能找到的完成度都太差,而且作者似乎都已经弃坑了。

    没办法,我只能自己写了一个了:react-native-amap3d。接口设计和实现部分参考了 react-native-maps,目前的完成度已经比较高了,而且经过了一些迭代,也基本稳定。

    PS. 我也算是 github 活跃分子,开源在我心中有很高的地位,哪怕我之后已经没有时间和精力投入这个项目,issues 和 pull requests 我也会尽到责任去处理。



  • 完不完善其实不要紧,重点是项目还"活着",我github上找的,最后更新时间都是一年前的,感谢,我会去看下你的这个项目,碰到问题还请帮忙看看



  • @7c00 我想自己跑一个Demo起来看看,是直接跑一下react-native link react-native-amap3d就行了,还是要像其他的SDK一样,得去配置build.gradle那些东西,我不是java程序员,对那些一窍不通,所以想问下,麻烦了



  • @jiyarong 这些问题,README 已经写得足够简单明了了吧。

    对于 android,只要 link 就可以了。另外提醒一下,用 react-native 最好是要懂 native 的,尤其是用到原生组件的时候。



  • @7c00 我是做web开发的,比较认同React的理念,所以想要用React来做App试试,如果说需要掌握一些native的技术栈,需要掌握哪些呢



  • @jiyarong 简单来说就是原生开发的基础。



  • @7c00 大兄弟,Demo跑起来了,你这个不用加权限也不用添依赖,真是神奇啊,试了不少其他SDK,都要各种配置,对我这种非native程序员相当不友好,你这个好多了



  • @jiyarong
    大兄弟,ios端的好像出了点问题
    这是我的Podfile

    platform :ios, '8.0'
    
    target 'AmapDemo' do
      pod 'Yoga', path: '../node_modules/react-native/ReactCommon/yoga/'
      pod 'React', path: '../node_modules/react-native/', :subspecs => [
        'DevSupport',
      ]
      pod 'react-native-amap3d', path: '../node_modules/react-native-amap3d/'
    end
    
    
    $ pod install
    

    然后跑ios的时候就报错了

    In file included from /Users/jiyarong/webs2/AmapDemo/node_modules/react-native-amap3d/ios/AMapViewManager.m:2:
    /Users/jiyarong/webs2/AmapDemo/node_modules/react-native-amap3d/ios/AMapView.h:1:9: fatal error: 'MAMapKit/MAMapKit.h' file not found
    #import <MAMapKit/MAMapKit.h>
            ^
    1 error generated.
    
    
    
    ** BUILD FAILED **
    
    
    
    The following build commands failed:
            CompileC /Users/jiyarong/webs2/AmapDemo/ios/build/Build/Intermediates/AMap3D.build/Debug-iphonesimulator/AMap3D.build/Objects-normal/x86_64/AMapViewManager.o AMapViewManager.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    (1 failure)
    
    Installing build/Build/Products/Debug-iphonesimulator/AmapDemo.app
    An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
    Failed to install the requested application
    An application bundle was not found at the provided path.
    Provide a valid path to the desired application bundle.
    Print: Entry, ":CFBundleIdentifier", Does Not Exist
    
    Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/AmapDemo.app/Info.plist
    Print: Entry, ":CFBundleIdentifier", Does Not Exist
    

    我项目叫AmapDemo, 是我podfile写错了吗



  • @7c00 我写在issues里面了,看样子是#import <MAMapKit/MAMapKit.h>这个文件引不到,但是我搜了一下,文件在Pods下面是有的,会不会是路径问题


登录后回复