types.ts 2.33 KB
import { ImageSourcePropType, ColorValue } from "react-native";

/**
 * 点坐标
 */
export interface Point {
  x: number;
  y: number;
}

/**
 * 地理坐标
 */
export interface LatLng {
  /**
   * 纬度
   */
  latitude: number;

  /**
   * 经度
   */
  longitude: number;
}

/**
 * 地图标注点
 */
export interface MapPoi {
  /**
   * 标注点 ID
   */
  id: string;

  /**
   * 标注点名称
   */
  name: string;

  /**
   * 标注点坐标
   */
  position: LatLng;
}

/**
 * 矩形坐标边界
 */
export interface LatLngBounds {
  /**
   * 西南坐标
   */
  southwest: LatLng;

  /**
   * 东北坐标
   */
  northeast: LatLng;
}

/**
 * 地图状态
 */
export interface CameraPosition {
  /**
   * 中心坐标
   */
  target?: LatLng;

  /**
   * 缩放级别
   */
  zoom?: number;

  /**
   * 朝向、旋转角度
   */
  bearing?: number;

  /**
   * 倾斜角度
   */
  tilt?: number;
}

/**
 * 定位
 */
export interface Location extends LatLng {
  /**
   * 精度
   */
  accuracy: number;

  /**
   * 朝向
   */
  heading: number;

  /**
   * 海拔
   */
  altitude: number;

  /**
   * 运动速度
   */
  speed: number;
}

/**
 * 地图类型
 */
export enum MapType {
  /**
   * 标准地图
   */
  Standard,

  /**
   * 卫星地图
   */
  Satellite,

  /**
   * 夜间地图
   */
  Night,

  /**
   * 导航地图
   */
  Navi,

  /**
   * 公交地图
   */
  Bus,
}

export enum RouteType {
  /**驾车 */
  DRIVE,
  /**步行 */
  WALK,
  /**公交 */
  BUS,
  /** 骑行 */
  RIDE,
  /** 货车 */
  TRUCK,
}

/**
 * 路线规划参数
 */
export interface RouteProps {
  /**
   * 出行方式(目前只实现了驾车)
   */
  type: RouteType;
  /**
   * 起点
   */
  startPoint: LatLng;
  /**
   * 终点
   */
  endPoint: LatLng;
  /**
   * 途经点
   */
  throughPointList?: LatLng[];
  /**
   * 显示途经点
   */
  throughPointVisible?: boolean;
  /**
   * 根据不同的路段拥堵情况展示不同的颜色
   */
  colorFulLine?: boolean;
  /**
   * 线段宽度
   */
  width?: number;
  /**
   * 路线的纹理
   */
  roadLine?: ImageSourcePropType;
  /**
   * 起点图标
   */
  startIcon?: ImageSourcePropType;
  /**
   * 终点图标
   */
  endIcon?: ImageSourcePropType;
  /**
   * 途经点图标
   */
  throughPointIcon?: ImageSourcePropType;
  /**
   * 线段颜色
   */
  lineColor?: ColorValue;
}