react-native-anavi
Version:
react native amap navigation component, Android + iOS
112 lines (91 loc) • 3.21 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, 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