UNPKG

react-native-anavi

Version:

react native amap navigation component, Android + iOS

112 lines (91 loc) 3.21 kB
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import React from 'react'; import { number, string, bool, oneOfType } from 'prop-types'; import { ViewPropTypes, requireNativeComponent, Image, Platform } from 'react-native'; import Component from '../map-view/component'; import { mapEventsPropType, NaviShowModePropType, NaviTrackingModePropType, WalkNaviPointPropType } from '../prop-types'; const events = ['onInitNaviFailure', 'onInitNaviSuccess', 'onStartNavi', 'onLocationChange', 'onGetNavigationText', 'onEndEmulatorNavi', 'onCalculateRouteFailure', 'onCalculateRouteSuccess', 'onGpsStatusChanged', 'onNaviSettingChanged', 'onNaviCancel', 'onNaviComplete', 'onNaviViewLoaded', 'onNaviBackClick', 'onScanViewButtonClick', 'onNaviMapModeChanged', 'onNaviMapViewModeChanged', 'onNaviMapViewTrackingModeChanged', 'onLockMap']; export class WalkNaviView extends Component { constructor(...args) { super(...args); _defineProperty(this, "nativeComponent", 'AWalkNaviView'); } startNavi(type, speed) { this.call('startNavi', [type, speed || 60]); } stopNavi() { this.call('stopNavi', []); } pauseNavi() { this.call('puaseNavi', []); } resumeNavi() { this.call('resumeNavi', []); } startGPS(time, dis) { this.call('startPGS', [time, dis]); } stopGPS() { this.call('stopGPS', []); } render() { let { from, to, strategy, ...restProps } = this.props; if (from && !Array.isArray(from) && Platform.OS === 'ios') { from = [from]; } if (to && !Array.isArray(to) && Platform.OS === 'ios') { to = [to]; } if (from && Array.isArray(from) && Platform.OS === 'android') { from = from[0]; } if (to && Array.isArray(to) && Platform.OS === 'android') { to = to[0]; } const props = { ...restProps, ...this.handlers(events), navi: { from, to, strategy } }; for (let k in props) { if (k.indexOf('Icon') > -1) { props[k] = Image.resolveAssetSource(props[k]); } } return /*#__PURE__*/React.createElement(AWalkNaviView, props); } } // @ts-ignore _defineProperty(WalkNaviView, "propTypes", { ...ViewPropTypes, ...mapEventsPropType(events), from: WalkNaviPointPropType, to: WalkNaviPointPropType.isRequired, strategy: number, layoutVisible: bool, compassVisible: bool, leaderLineColor: string, screenAlwaysBright: bool, browseButtonVisible: bool, moreButtonVisible: bool, scaleVisible: bool, turnArrowVisible: bool, trackingMode: NaviTrackingModePropType, tilt: number, carMarkerIcon: oneOfType([string, number]), startMarkerIcon: oneOfType([string, number]), endMarkerIcon: oneOfType([string, number]), fourCornersIcon: oneOfType([string, number]), showMode: NaviShowModePropType }); _defineProperty(WalkNaviView, "defaultProps", { strategy: 10 // 单路径 }); const AWalkNaviView = requireNativeComponent('AWalkNaviView', WalkNaviView); //# sourceMappingURL=walk-navi.js.map