import {Injectable} from '@angular/core';
declare var AMapPlugin;
@Injectable()
export class NativeService {
constructor() { }
/**
* @param {Position} startPoint 开始坐标
* @param {Array} wayPoints 途经坐标
* @param {Position} endPoint 结束坐标
* @param {number} aMapNaviType 导航类型:
* 0:开车
* 1:步行
* 2:骑行
* @param {number} aMapPageType 导航页面类型
* 0:路径
* 1:导航
* @param {AMapCarInfo} aMapCarInfo 车辆信息
* @returns {Observable}
*/
navigation (startPoint: Position, wayPoints:Array ,endPoint: Position,aMapNaviType:number,aMapPageType:number, aMapCarInfo: AMapCarInfo): Observable {
return Observable.create(observer => {
if (this.platform.is('mobile') && !this.platform.is('mobileweb')) {
let length = wayPoints.length;
AMapPlugin.navigation({
lng: startPoint.lng,
lat: startPoint.lat,
poi: startPoint.poi
}, {
lng: startPoint.lng,
lat: startPoint.lat,
poi: startPoint.poi
}, {
lng: endPoint.lng,
lat: endPoint.lat,
poi: endPoint.poi
}, {
aMapNaviType:aMapNaviType
}, {
aMapPageType:aMapPageType
},{
carNumber: aMapCarInfo.carNumber,
isRestriction: aMapCarInfo.isRestriction,
carType: aMapCarInfo.carType,
vehicleHeight: aMapCarInfo.vehicleHeight,
vehicleWeight: aMapCarInfo.vehicleWeight,
vehicleLoad: aMapCarInfo.vehicleLoad,
vehicleLoadSwitch: aMapCarInfo.vehicleLoadSwitch,
vehicleWidth: aMapCarInfo.vehicleWidth,
vehicleLength: aMapCarInfo.vehicleLength,
vehicleSize: aMapCarInfo.vehicleSize,
vehicleAxis: aMapCarInfo.vehicleAxis
}, message => {
observer.next(message);
}, err => {
this.logger.log(err, '导航失败');
this.alert('提示信息', '导航失败');
observer.error(false);
});
} else {
this.alert('提示信息', '非手机环境不能导航');
observer.error(false);
}
});
}
}