Socket
Book a DemoInstallSign in
Socket

react-native-sxc-mapkit

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-sxc-mapkit

react-native mapkit geolocation background-location mapview baidumap

0.1.3
latest
npmnpm
Version published
Weekly downloads
9
Maintainers
1
Weekly downloads
 
Created
Source

react-native-sxc-mapkit

  • 地图 React Native 模块,支持 react native 0.40+
  • 支持后台定位(Android 提供选择高德或百度定位)

Install 安装

cnpm install react-native-sxc-mapkit  --save

Import 导入

Android Studio

  • settings.gradle include ':react-native-sxc-mapkit' project(':react-native-sxc-mapkit').projectDir = new File(settingsDir, '../node_modules/react-native-sxc-mapkit/android')

  • build.gradle compile project(':react-native-sxc-mapkit')

  • MainApplicationnew MapKitPackage(getApplicationContext())

  • 配置百度地图key AndroidMainifest.xml <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="xx"/>

  • 配置高德key AndroidMainifest.xml <meta-data android:name="com.amap.api.v2.apikey" android:value="your key" />

Xcode

  • Project navigator->Libraries->Add Files to 选择 react-native-sxc-mapkit/ios/RCTMapKit.xcodeproj

  • Project navigator->Build Phases->Link Binary With Libraries 加入 libRCTMapKit.a

  • Project navigator->Build Settings->Search Paths, Framework search paths 添加 react-native-sxc-mapkit/ios/lib,Header search paths 添加 react-native-sxc-mapkit/ios/RCTMapKit

  • 添加依赖, react-native-sxc-mapkit/ios/lib 下的全部 framwordk, CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework、libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework 、libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)、CoreTelephony.framework

  • 添加 BaiduMapAPI_Map.framework/Resources/mapapi.bundle

  • 添加 UIBackgroundModes location 到 Info.plist

  • 添加 NSLocationAlwaysUsageDescription 到Info.plist 并增加相应描述

  • 其它一些注意事项可参考百度地图LBS文档

AppDelegate.m init 初始化
#import "RCTBaiduMapViewManager.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
    [RCTBaiduMapViewManager initSDK:@"api key"];
    ...
}

Usage 使用方法

import { MapView, MapTypes, MapModule, Geolocation } from 'react-native-sxc-mapkit

MapView Props 属性

NameTypeDefaultExtra
zoomControlsVisiblebooltrueAndroid only
trafficEnabledboolfalse
baiduHeatMapEnabledboolfalse
mapTypenumber1
zoomnumber10
centerobjectnull{latitude: 0, longitude: 0}
markerobjectnull{latitude: 0, longitude: 0, title: ''}
markersarray[][marker, maker]
onMapStatusChangeStartfuncundefinedAndroid only
onMapStatusChangefuncundefined
onMapStatusChangeFinishfuncundefinedAndroid only
onMapLoadedfuncundefined
onMapClickfuncundefined
onMapDoubleClickfuncundefined
gesturesEnabledbooltrue
showMapScaleBarbooltrue
rotateEnabledbooltrue
zoomEnabledWithTapbooltrue
scrollEnabledbooltrue
zoomEnabledbooltrue
overlookEnabledbooltrue

Geolocation Methods

MethodResult
Promise reverseGeoCode(double lat, double lng){"address": "", "province": "", "city": "", "district": "", "streetName": "", "streetNumber": "", "nearbyPOI": []}
Promise reverseGeoCodeGPS(double lat, double lng){"address": "", "province": "", "city": "", "district": "", "streetName": "", "streetNumber": ""}
Promise geocode(String city, String addr){"latitude": 0.0, "longitude": 0.0}
Promise getCurrentPosition()IOS: {"latitude": 0.0, "longitude": 0.0} Android: {"latitude": 0.0, "longitude": 0.0, "direction": -1, "altitude": 0.0, "radius": 0.0, "address": "", "countryCode": "", "country": "", "province": "", "cityCode": "", "city": "", "district": "", "street": "", "streetNumber": "", "buildingId": "", "buildingName": ""}
Promise geoCodeCityKeyWord(string keyword, int pageNum, int pageCapacity){"result": [{"address": "", "name": "", "street": "", "streetNumber": "", "latitude": "", "longitude": "", ···}]}

background geolocation service

后台定位服务

API

较多 待补充

usage


import { BackgroundGeolocation } from '@sxc-test/react-native-sxc-background-geolocation'

const config = {
  desiredAccuracy: 10,
  stationaryRadius: 30,
  distanceFilter: 30,
      // Activity Recognition
  stopTimeout: 1,
  locationTimeout: 30,
      // Application config
      // life-cycle.
  locationProvider: BackgroundGeolocation.provider.ANDROID_DISTANCE_FILTER_PROVIDER,
  stopOnTerminate: false,   // <-- Allow the background-service to continue tracking when user closes the app.
  startOnBoot: true,        // <-- Auto start tracking when device is powered-up.
      // HTTP / SQLite config
  batchSync: false,       // <-- [Default: false] Set true to sync locations to server in a single HTTP request.
  autoSync: true,         // <-- [Default: true] Set true to sync each location to server as it arrives.
  autoSyncThreshold: 1,
  maxDaysToPersist: 1,    // <-- Maximum days to persist a location in plugin's SQLite database when HTTP fails
  preventSuspend: true,
  interval: 5 * 60 * 1000, // provider == TIMER_PROVIDE, timer or default
  startForeground: true,
  locationClient: BackgroundGeolocation.client.ANDROID_BAIDU_LOCATION, // 使用百度还是高德进行定位
  url: 'http://aaa.jkjs.org/location', 
  debug: false,
  locationAuthorizationAlert: {
    titleWhenNotEnabled: '定位服务关闭',
    titleWhenOff: '定位服务关闭',
    instructions: '检测到您已经关闭定位服务,为了能更好地为您服务请点击确定,在"位置"选项中选择"始终"',
    cancelButton: '取消',
    settingsButton: '设置'
  },
  params: {
    apiName: 'com.sxc.wp.user.addUserPosition',
    apiVersion: '1.0',
    bizName: 'wcGetUserInfoQueryDO',
    host: 'http://sssss.org',
    resourceType: Platform.OS === 'ios' ? '1' : '0',
    ...DeviceInfo.getBaseInfo(),
    version: DeviceInfo.deviceInfo.version + ''
  },
  method: 'post'
}



BackgroundGeolocation.configure(config)

// 先停止先前的服务
BackgroundGeolocation.stop(() => {
  console.log('====================================')
  console.log('bg location stop')
  console.log('====================================')
})
BackgroundGeolocation.start(() => {
  console.log('====================================')
  console.log('bg location start')
  console.log('====================================')
})



Keywords

react-native

FAQs

Package last updated on 05 Feb 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.