UNPKG

react-native-anavi

Version:

react native amap navigation component, Android + iOS

95 lines (79 loc) 2.84 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 } from 'react-native'; import Component from '../map-view/component'; import { mapEventsPropType, NaviShowModePropType, NaviTrackingModePropType, RideNaviPointPropType } 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 RideNaviView extends Component { constructor(...args) { super(...args); _defineProperty(this, "nativeComponent", 'ARideNaviView'); } 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() { const { from, to, strategy, ...restProps } = this.props; 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(ARideNaviView, props); } } // @ts-ignore _defineProperty(RideNaviView, "propTypes", { ...ViewPropTypes, ...mapEventsPropType(events), from: RideNaviPointPropType, to: RideNaviPointPropType.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(RideNaviView, "defaultProps", { strategy: 10 // 单路径 }); const ARideNaviView = requireNativeComponent('ARideNaviView', RideNaviView); //# sourceMappingURL=ride-navi.js.map