react-native-anavi
Version:
react native amap navigation component, Android + iOS
276 lines (275 loc) • 14 kB
TypeScript
import React from 'react';
import { ImageSourcePropType } from 'react-native';
import type { NaviLatLng, NaviPoi, NaviLocation, NaviCalculateRouteResult, NaviType, NaviShowMode, NaviTrackingMode } from '../types';
import Component from '../map-view/component';
export declare type RideNaviPointProp = NaviLatLng | NaviPoi;
export interface RideNaviViewProp {
/**
* 导航起点,不指定则从当前位置开始导航
*/
from?: RideNaviPointProp;
/**
* 导航目的地
*/
to: RideNaviPointProp;
/**
* 导航策略
*/
strategy?: number;
/**
* 导航UI是否可见(默认可见)
*/
layoutVisible?: boolean;
/**
* 指南针图标否在导航界面显示,默认显示。
*/
compassVisible?: boolean;
/**
* 起始终点线颜色
*/
leaderLineColor?: string;
/**
* 导航状态下屏幕是否常亮
*/
screenAlwaysBright?: boolean;
/**
* 是否显示路线全览按钮
*/
browseButtonVisible?: boolean;
/**
* 更多按钮是否显示
*/
moreButtonVisible?: boolean;
/**
* 比例尺是否显示
*/
scaleVisible?: boolean;
/**
* 转向箭头是否显示
*/
turnArrowVisible?: boolean;
/**
* 设置锁车下地图倾角 倾角为0时地图模式是2D模式。
*/
tilt?: number;
carMarkerIcon?: ImageSourcePropType;
startMarkerIcon?: ImageSourcePropType;
endMarkerIcon?: ImageSourcePropType;
fourCornersIcon?: ImageSourcePropType;
/**
* 设置导航界面跟随模式
*/
trackingMode?: NaviTrackingMode;
/**
* 导航显示模式
*/
showMode?: NaviShowMode;
/**
* 导航组件初始化失败时分发
*/
onInitNaviFailure?: () => void;
/**
* 导航组件初始化成功时分发
*/
onInitNaviSuccess?: () => void;
/**
* 开始导航时分发
*/
onStartNavi?: (event: {
type: number;
}) => void;
/**
* 位置信息发生变化时分发
*/
onLocationChange?: (event: NaviLocation) => void;
/**
* 导航语音播报时分发
*/
onGetNavigationText?: (event: {
text: string;
}) => void;
/**
* 模拟导航结束时分发
*/
onEndEmulatorNavi?: () => void;
/**
* 路径计算失败时分发
*/
onCalculateRouteFailure?: (event: NaviCalculateRouteResult) => void;
/**
* 路径计算成功时分发
*/
onCalculateRouteSuccess?: (event: NaviCalculateRouteResult) => void;
/**
* 响铃时分发
*/
onPlayRing?: (event: {
type: number;
}) => void;
/**
* GPS信号改变时分发
*/
onGpsStatusChanged?: (event: {
status: number;
}) => void;
/**
* 导航设置发生改变时分发
*/
onNaviSettingChanged?: () => void;
/**
* 导航取消时分发
*/
onNaviCancel?: () => void;
/**
* 导航完成时分发
*/
onNaviComplete?: () => void;
/**
* 地图加载完成时分发
*/
onNaviViewLoaded?: () => void;
/**
* 点击导航返回按钮时分发
*/
onNaviBackClick?: () => void;
/**
* 点击全览按钮时分发
*/
onScanViewButtonClick?: () => void;
/**
* 导航地图模式改变时分发(锁车、全览、普通)
*/
onNaviMapModeChanged?: (event: {
mode: number;
}) => void;
/**
* 地图类型发生改变时分发(白天、黑夜模式)
*/
onNaviMapViewModeChanged?: (event: {
type: number;
}) => void;
/**
* 导航界面跟随模式改变后分发
*/
onNaviMapViewTrackingModeChanged?: (event: {
mode: number;
}) => void;
/**
* 地图锁定时分发
*/
onLockMap?: (event: {
isLock: boolean;
}) => void;
}
export declare class RideNaviView extends Component<RideNaviViewProp> {
static propTypes: {
from: import("prop-types").Requireable<import("prop-types").InferProps<{
latitude: import("prop-types").Validator<number>;
longitude: import("prop-types").Validator<number>;
}> | import("prop-types").InferProps<{
name: import("prop-types").Validator<string>;
coordinate: import("prop-types").Validator<import("prop-types").InferProps<{
latitude: import("prop-types").Validator<number>;
longitude: import("prop-types").Validator<number>;
}>>;
poiId: import("prop-types").Validator<string>;
direction: import("prop-types").Requireable<number>;
}>>;
to: import("prop-types").Validator<import("prop-types").InferProps<{
latitude: import("prop-types").Validator<number>;
longitude: import("prop-types").Validator<number>;
}> | import("prop-types").InferProps<{
name: import("prop-types").Validator<string>;
coordinate: import("prop-types").Validator<import("prop-types").InferProps<{
latitude: import("prop-types").Validator<number>;
longitude: import("prop-types").Validator<number>;
}>>;
poiId: import("prop-types").Validator<string>;
direction: import("prop-types").Requireable<number>;
}>>;
strategy: import("prop-types").Requireable<number>;
layoutVisible: import("prop-types").Requireable<boolean>;
compassVisible: import("prop-types").Requireable<boolean>;
leaderLineColor: import("prop-types").Requireable<string>;
screenAlwaysBright: import("prop-types").Requireable<boolean>;
browseButtonVisible: import("prop-types").Requireable<boolean>;
moreButtonVisible: import("prop-types").Requireable<boolean>;
scaleVisible: import("prop-types").Requireable<boolean>;
turnArrowVisible: import("prop-types").Requireable<boolean>;
trackingMode: import("prop-types").Requireable<number>;
tilt: import("prop-types").Requireable<number>;
carMarkerIcon: import("prop-types").Requireable<React.ReactText>;
startMarkerIcon: import("prop-types").Requireable<React.ReactText>;
endMarkerIcon: import("prop-types").Requireable<React.ReactText>;
fourCornersIcon: import("prop-types").Requireable<React.ReactText>;
showMode: import("prop-types").Requireable<number>;
hitSlop?: import("prop-types").Validator<import("react-native").Insets | undefined> | undefined;
onLayout?: import("prop-types").Validator<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
pointerEvents?: import("prop-types").Validator<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
removeClippedSubviews?: import("prop-types").Validator<boolean | undefined> | undefined;
style?: import("prop-types").Validator<import("react-native").StyleProp<import("react-native").ViewStyle>> | undefined;
testID?: import("prop-types").Validator<string | undefined> | undefined;
nativeID?: import("prop-types").Validator<string | undefined> | undefined;
collapsable?: import("prop-types").Validator<boolean | undefined> | undefined;
needsOffscreenAlphaCompositing?: import("prop-types").Validator<boolean | undefined> | undefined;
renderToHardwareTextureAndroid?: import("prop-types").Validator<boolean | undefined> | undefined;
focusable?: import("prop-types").Validator<boolean | undefined> | undefined;
shouldRasterizeIOS?: import("prop-types").Validator<boolean | undefined> | undefined;
isTVSelectable?: import("prop-types").Validator<boolean | undefined> | undefined;
hasTVPreferredFocus?: import("prop-types").Validator<boolean | undefined> | undefined;
tvParallaxProperties?: import("prop-types").Validator<import("react-native").TVParallaxProperties | undefined> | undefined;
tvParallaxShiftDistanceX?: import("prop-types").Validator<number | undefined> | undefined;
tvParallaxShiftDistanceY?: import("prop-types").Validator<number | undefined> | undefined;
tvParallaxTiltAngle?: import("prop-types").Validator<number | undefined> | undefined;
tvParallaxMagnification?: import("prop-types").Validator<number | undefined> | undefined;
onStartShouldSetResponder?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
onMoveShouldSetResponder?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
onResponderEnd?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderGrant?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderReject?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderMove?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderRelease?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderStart?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onResponderTerminationRequest?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
onResponderTerminate?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onStartShouldSetResponderCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
onMoveShouldSetResponderCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
onTouchStart?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onTouchMove?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onTouchEnd?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onTouchCancel?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
onTouchEndCapture?: import("prop-types").Validator<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
accessible?: import("prop-types").Validator<boolean | undefined> | undefined;
accessibilityActions?: import("prop-types").Validator<readonly Readonly<{
name: import("react-native").AccessibilityActionName;
label?: string | undefined;
}>[] | undefined> | undefined;
accessibilityLabel?: import("prop-types").Validator<string | undefined> | undefined;
accessibilityRole?: import("prop-types").Validator<"image" | "none" | "button" | "link" | "search" | "keyboardkey" | "text" | "adjustable" | "imagebutton" | "header" | "summary" | "alert" | "checkbox" | "combobox" | "menu" | "menubar" | "menuitem" | "progressbar" | "radio" | "radiogroup" | "scrollbar" | "spinbutton" | "switch" | "tab" | "tablist" | "timer" | "toolbar" | undefined> | undefined;
accessibilityState?: import("prop-types").Validator<import("react-native").AccessibilityState | undefined> | undefined;
accessibilityHint?: import("prop-types").Validator<string | undefined> | undefined;
accessibilityValue?: import("prop-types").Validator<import("react-native").AccessibilityValue | undefined> | undefined;
onAccessibilityAction?: import("prop-types").Validator<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
accessibilityComponentType?: import("prop-types").Validator<"none" | "button" | "radiobutton_checked" | "radiobutton_unchecked" | undefined> | undefined;
accessibilityLiveRegion?: import("prop-types").Validator<"none" | "polite" | "assertive" | undefined> | undefined;
importantForAccessibility?: import("prop-types").Validator<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
accessibilityElementsHidden?: import("prop-types").Validator<boolean | undefined> | undefined;
accessibilityTraits?: import("prop-types").Validator<"image" | "none" | "button" | "link" | "search" | "text" | "adjustable" | "header" | "summary" | "selected" | "plays" | "key" | "disabled" | "frequentUpdates" | "startsMedia" | "allowsDirectInteraction" | "pageTurn" | import("react-native").AccessibilityTrait[] | undefined> | undefined;
accessibilityViewIsModal?: import("prop-types").Validator<boolean | undefined> | undefined;
onAccessibilityEscape?: import("prop-types").Validator<(() => void) | undefined> | undefined;
onAccessibilityTap?: import("prop-types").Validator<(() => void) | undefined> | undefined;
onMagicTap?: import("prop-types").Validator<(() => void) | undefined> | undefined;
accessibilityIgnoresInvertColors?: import("prop-types").Validator<boolean | undefined> | undefined;
};
static defaultProps: {
strategy: number;
};
startNavi(type: NaviType, speed?: number): void;
stopNavi(): void;
pauseNavi(): void;
resumeNavi(): void;
startGPS(time?: number, dis?: number): void;
stopGPS(): void;
nativeComponent: string;
render(): JSX.Element;
}