react-native-anavi
Version:
react native amap navigation component, Android + iOS
95 lines (79 loc) • 2.84 kB
JavaScript
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