add api
This commit is contained in:
@@ -12,21 +12,42 @@ import android.os.Parcelable;
|
||||
public class MogoLatLng implements Parcelable {
|
||||
|
||||
public final double lat;
|
||||
@Deprecated
|
||||
public final double lng;
|
||||
public final double lon;
|
||||
|
||||
public MogoLatLng( double lat, double lng ) {
|
||||
public MogoLatLng( double lat, double lon ) {
|
||||
this.lat = lat;
|
||||
this.lng = lng;
|
||||
this.lng = lon;
|
||||
this.lon = lng;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
return lat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated, use {@link #getLon()} instead.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
public double getLng() {
|
||||
return lng;
|
||||
}
|
||||
|
||||
public double getLon() {
|
||||
return lon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MogoLatLng{" +
|
||||
"lat=" + lat +
|
||||
", lon=" + lon +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
@@ -36,14 +57,16 @@ public class MogoLatLng implements Parcelable {
|
||||
public void writeToParcel( Parcel dest, int flags ) {
|
||||
dest.writeDouble( this.lat );
|
||||
dest.writeDouble( this.lng );
|
||||
dest.writeDouble( this.lon );
|
||||
}
|
||||
|
||||
protected MogoLatLng( Parcel in ) {
|
||||
this.lat = in.readDouble();
|
||||
this.lng = in.readDouble();
|
||||
this.lon = in.readDouble();
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator< MogoLatLng > CREATOR = new Parcelable.Creator< MogoLatLng >() {
|
||||
public static final Creator< MogoLatLng > CREATOR = new Creator< MogoLatLng >() {
|
||||
@Override
|
||||
public MogoLatLng createFromParcel( Parcel source ) {
|
||||
return new MogoLatLng( source );
|
||||
@@ -54,12 +77,4 @@ public class MogoLatLng implements Parcelable {
|
||||
return new MogoLatLng[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MogoLatLng{" +
|
||||
"lat=" + lat +
|
||||
", lng=" + lng +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.map.listener;
|
||||
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.marker.MogoMarkersHandler;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoNaviListenerHandler;
|
||||
|
||||
@@ -63,4 +64,14 @@ public class MogoHosListenerRegister implements IMogoHosListenerRegister {
|
||||
public void unregisterMarkerClickListener() {
|
||||
MogoMarkersHandler.getInstance().unregisterMarkerClickListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerHostAimlessModeListener( IMogoAimlessModeListener listener ) {
|
||||
MogoNaviListenerHandler.getInstance().registerHostAimlessModeListener( listener );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterHostAimlessModeListener() {
|
||||
MogoNaviListenerHandler.getInstance().unregisterHostAimlessModeListener();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-09
|
||||
* <p>
|
||||
* 续航模式回调
|
||||
*/
|
||||
public interface IMogoAimlessModeListener {
|
||||
|
||||
/**
|
||||
* 巡航信息发生改变
|
||||
*/
|
||||
void onUpdateTraffic2( MogoTraffic traffic );
|
||||
|
||||
/**
|
||||
* 拥堵信息
|
||||
*
|
||||
* @param info
|
||||
*/
|
||||
void onUpdateCongestion( MogoCongestionInfo info );
|
||||
}
|
||||
@@ -47,6 +47,8 @@ public interface IMogoNaviListener {
|
||||
|
||||
/**
|
||||
* 巡航信息发生改变
|
||||
* Deprecated, use {@link IMogoAimlessModeListener#onUpdateTraffic2(MogoTraffic)} instead.
|
||||
*/
|
||||
void onUpdateTraffic(MogoTraffic traffic);
|
||||
@Deprecated
|
||||
void onUpdateTraffic( MogoTraffic traffic );
|
||||
}
|
||||
|
||||
@@ -15,8 +15,20 @@ public interface IMogoNaviListenerRegister {
|
||||
*/
|
||||
void registerHostNaviListener( IMogoNaviListener listener );
|
||||
|
||||
/**
|
||||
* 注册巡航模式回调,各业务模块不用关注
|
||||
*
|
||||
* @param listener
|
||||
*/
|
||||
void registerHostAimlessModeListener( IMogoAimlessModeListener listener );
|
||||
|
||||
/**
|
||||
* 注销导航回调,各业务模块不用关注
|
||||
*/
|
||||
void unregisterHostNaviListener();
|
||||
|
||||
/**
|
||||
* 注销巡航回调,各业务模块不用关注
|
||||
*/
|
||||
void unregisterHostAimlessModeListener();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-09
|
||||
* <p>
|
||||
* 拥堵详情
|
||||
*/
|
||||
public class MogoCongestionInfo implements Parcelable {
|
||||
|
||||
private int mTime;
|
||||
private int mLength;
|
||||
private String mRoadName;
|
||||
private int mCongestionStatus;
|
||||
private int mEventType;
|
||||
private double mEventLon;
|
||||
private double mEventLat;
|
||||
|
||||
private List< MogoCongestionLink > mCongestionLinks;
|
||||
|
||||
|
||||
public MogoCongestionInfo() {
|
||||
}
|
||||
|
||||
public int getTime() {
|
||||
return mTime;
|
||||
}
|
||||
|
||||
public void setTime( int mTime ) {
|
||||
this.mTime = mTime;
|
||||
}
|
||||
|
||||
public int getLength() {
|
||||
return mLength;
|
||||
}
|
||||
|
||||
public void setLength( int mLength ) {
|
||||
this.mLength = mLength;
|
||||
}
|
||||
|
||||
public String getRoadName() {
|
||||
return mRoadName;
|
||||
}
|
||||
|
||||
public void setRoadName( String mRoadName ) {
|
||||
this.mRoadName = mRoadName;
|
||||
}
|
||||
|
||||
public int getCongestionStatus() {
|
||||
return mCongestionStatus;
|
||||
}
|
||||
|
||||
public void setCongestionStatus( int mCongestionStatus ) {
|
||||
this.mCongestionStatus = mCongestionStatus;
|
||||
}
|
||||
|
||||
public int getEventType() {
|
||||
return mEventType;
|
||||
}
|
||||
|
||||
public void setEventType( int mEventType ) {
|
||||
this.mEventType = mEventType;
|
||||
}
|
||||
|
||||
public double getEventLon() {
|
||||
return mEventLon;
|
||||
}
|
||||
|
||||
public void setEventLon( double mEventLon ) {
|
||||
this.mEventLon = mEventLon;
|
||||
}
|
||||
|
||||
public double getEventLat() {
|
||||
return mEventLat;
|
||||
}
|
||||
|
||||
public void setEventLat( double mEventLat ) {
|
||||
this.mEventLat = mEventLat;
|
||||
}
|
||||
|
||||
public List< MogoCongestionLink > getCongestionLinks() {
|
||||
return mCongestionLinks;
|
||||
}
|
||||
|
||||
public void setCongestionLinks( List< MogoCongestionLink > mCongestionLinks ) {
|
||||
this.mCongestionLinks = mCongestionLinks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel( Parcel dest, int flags ) {
|
||||
dest.writeInt( this.mTime );
|
||||
dest.writeInt( this.mLength );
|
||||
dest.writeString( this.mRoadName );
|
||||
dest.writeInt( this.mCongestionStatus );
|
||||
dest.writeInt( this.mEventType );
|
||||
dest.writeDouble( this.mEventLon );
|
||||
dest.writeDouble( this.mEventLat );
|
||||
dest.writeTypedList( this.mCongestionLinks );
|
||||
}
|
||||
|
||||
protected MogoCongestionInfo( Parcel in ) {
|
||||
this.mTime = in.readInt();
|
||||
this.mLength = in.readInt();
|
||||
this.mRoadName = in.readString();
|
||||
this.mCongestionStatus = in.readInt();
|
||||
this.mEventType = in.readInt();
|
||||
this.mEventLon = in.readDouble();
|
||||
this.mEventLat = in.readDouble();
|
||||
this.mCongestionLinks = in.createTypedArrayList( MogoCongestionLink.CREATOR );
|
||||
}
|
||||
|
||||
public static final Creator< MogoCongestionInfo > CREATOR = new Creator< MogoCongestionInfo >() {
|
||||
@Override
|
||||
public MogoCongestionInfo createFromParcel( Parcel source ) {
|
||||
return new MogoCongestionInfo( source );
|
||||
}
|
||||
|
||||
@Override
|
||||
public MogoCongestionInfo[] newArray( int size ) {
|
||||
return new MogoCongestionInfo[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.mogo.map.MogoLatLng;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-09
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class MogoCongestionLink implements Parcelable {
|
||||
|
||||
private ArrayList< MogoLatLng > mCoords;
|
||||
private int mCongestionStatus;
|
||||
|
||||
|
||||
public MogoCongestionLink() {
|
||||
}
|
||||
|
||||
public List< MogoLatLng > getCoords() {
|
||||
return mCoords;
|
||||
}
|
||||
|
||||
public void setCoords( ArrayList< MogoLatLng > mCoords ) {
|
||||
this.mCoords = mCoords;
|
||||
}
|
||||
|
||||
public int getCongestionStatus() {
|
||||
return mCongestionStatus;
|
||||
}
|
||||
|
||||
public void setCongestionStatus( int mCongestionStatus ) {
|
||||
this.mCongestionStatus = mCongestionStatus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel( Parcel dest, int flags ) {
|
||||
dest.writeTypedList( this.mCoords );
|
||||
dest.writeInt( this.mCongestionStatus );
|
||||
}
|
||||
|
||||
protected MogoCongestionLink( Parcel in ) {
|
||||
this.mCoords = in.createTypedArrayList( MogoLatLng.CREATOR );
|
||||
this.mCongestionStatus = in.readInt();
|
||||
}
|
||||
|
||||
public static final Creator< MogoCongestionLink > CREATOR = new Creator< MogoCongestionLink >() {
|
||||
@Override
|
||||
public MogoCongestionLink createFromParcel( Parcel source ) {
|
||||
return new MogoCongestionLink( source );
|
||||
}
|
||||
|
||||
@Override
|
||||
public MogoCongestionLink[] newArray( int size ) {
|
||||
return new MogoCongestionLink[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -6,7 +6,7 @@ package com.mogo.map.navi;
|
||||
* <p>
|
||||
* 地图监听注册管理
|
||||
*/
|
||||
public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviListenerRegister {
|
||||
public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviListenerRegister, IMogoAimlessModeListener {
|
||||
|
||||
private static volatile MogoNaviListenerHandler sInstance;
|
||||
|
||||
@@ -33,6 +33,11 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList
|
||||
*/
|
||||
private IMogoNaviListener mDelegateListener = null;
|
||||
|
||||
/**
|
||||
* 上层模块代理对象
|
||||
*/
|
||||
private IMogoAimlessModeListener mAimlessDelegateListener = null;
|
||||
|
||||
@Override
|
||||
public void registerHostNaviListener( IMogoNaviListener listener ) {
|
||||
mDelegateListener = listener;
|
||||
@@ -43,6 +48,16 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList
|
||||
mDelegateListener = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerHostAimlessModeListener( IMogoAimlessModeListener listener ) {
|
||||
mAimlessDelegateListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterHostAimlessModeListener() {
|
||||
mAimlessDelegateListener = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void onInitNaviFailure() {
|
||||
if ( mDelegateListener != null ) {
|
||||
@@ -93,9 +108,24 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public void onUpdateTraffic( MogoTraffic traffic ) {
|
||||
if ( mDelegateListener != null ) {
|
||||
mDelegateListener.onUpdateTraffic( traffic );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateTraffic2( MogoTraffic traffic ) {
|
||||
if ( mAimlessDelegateListener != null ) {
|
||||
mAimlessDelegateListener.onUpdateTraffic2( traffic );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateCongestion( MogoCongestionInfo info ) {
|
||||
if ( mAimlessDelegateListener != null ) {
|
||||
mAimlessDelegateListener.onUpdateCongestion( info );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import com.mogo.map.MogoLatLng;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-01-16
|
||||
@@ -34,9 +36,65 @@ public class MogoTraffic {
|
||||
private int mSpeedLimit;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
* 经度
|
||||
*/
|
||||
private String mDesc;
|
||||
private double mLon;
|
||||
|
||||
/**
|
||||
* 维度
|
||||
*/
|
||||
private double mLat;
|
||||
|
||||
/**
|
||||
* 交通类型
|
||||
* 0 未知道路设施
|
||||
* 4 测速摄像头、测速雷达
|
||||
* 5 违章摄像头
|
||||
* 10 请谨慎驾驶
|
||||
* 11 有连续拍照
|
||||
* 12 铁路道口
|
||||
* 13 注意落石(左侧)
|
||||
* 14 事故易发地段
|
||||
* 15 易滑
|
||||
* 16 村庄
|
||||
* 18 前方学校
|
||||
* 19 有人看管的铁路道口
|
||||
* 20 无人看管的铁路道口
|
||||
* 21 两侧变窄
|
||||
* 22 向左急弯路
|
||||
* 23 向右急弯路
|
||||
* 24 反向弯路
|
||||
* 25 连续弯路
|
||||
* 26 左侧合流标识牌
|
||||
* 27 右侧合流标识牌
|
||||
* 28 监控摄像头
|
||||
* 29 专用道摄像头
|
||||
* 31 禁止超车
|
||||
* 36 右侧变窄
|
||||
* 37 左侧变窄
|
||||
* 38 窄桥
|
||||
* 39 左右绕行
|
||||
* 40 左侧绕行
|
||||
* 41 右侧绕行
|
||||
* 42 注意落石(右侧)
|
||||
* 43 傍山险路(左侧)
|
||||
* 44 傍山险路(右侧)
|
||||
* 47 上陡坡
|
||||
* 48 下陡坡
|
||||
* 49 过水路面
|
||||
* 50 路面不平
|
||||
* 52 慢行
|
||||
* 53 注意危险
|
||||
* 58 隧道
|
||||
* 59 渡口
|
||||
* 92 闯红灯
|
||||
* 93 应急车道
|
||||
* 94 非机动车道
|
||||
* 100 不绑定电子眼高发地
|
||||
* 101 车道违章
|
||||
* 102 超速违章
|
||||
*/
|
||||
private int mTrafficType;
|
||||
|
||||
public MogoTraffic( int fromType ) {
|
||||
mFromType = fromType;
|
||||
@@ -67,10 +125,124 @@ public class MogoTraffic {
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return mDesc;
|
||||
switch ( getTrafficType() ) {
|
||||
case 0:
|
||||
default:
|
||||
return "未知道路设施";
|
||||
case 4:
|
||||
return "测速摄像头、测速雷达";
|
||||
case 5:
|
||||
return "违章摄像头";
|
||||
case 10:
|
||||
return "请谨慎驾驶";
|
||||
case 11:
|
||||
return "有连续拍照";
|
||||
case 12:
|
||||
return "铁路道口";
|
||||
case 13:
|
||||
return "注意落石(左侧)";
|
||||
case 14:
|
||||
return "事故易发地段";
|
||||
case 15:
|
||||
return "易滑";
|
||||
case 16:
|
||||
return "村庄";
|
||||
case 18:
|
||||
return "前方学校";
|
||||
case 19:
|
||||
return "有人看管的铁路道口";
|
||||
case 20:
|
||||
return "无人看管的铁路道口";
|
||||
case 21:
|
||||
return "两侧变窄";
|
||||
case 22:
|
||||
return "向左急弯路";
|
||||
case 23:
|
||||
return "向右急弯路";
|
||||
case 24:
|
||||
return "反向弯路";
|
||||
case 25:
|
||||
return "连续弯路";
|
||||
case 26:
|
||||
return "左侧合流标识牌";
|
||||
case 27:
|
||||
return "右侧合流标识牌";
|
||||
case 28:
|
||||
return "监控摄像头";
|
||||
case 29:
|
||||
return "专用道摄像头";
|
||||
case 31:
|
||||
return "禁止超车";
|
||||
case 36:
|
||||
return "右侧变窄";
|
||||
case 37:
|
||||
return "左侧变窄";
|
||||
case 38:
|
||||
return "窄桥";
|
||||
case 39:
|
||||
return "左右绕行";
|
||||
case 40:
|
||||
return "左侧绕行";
|
||||
case 41:
|
||||
return "右侧绕行";
|
||||
case 42:
|
||||
return "注意落石(右侧)";
|
||||
case 43:
|
||||
return "傍山险路(左侧)";
|
||||
case 44:
|
||||
return "傍山险路(右侧)";
|
||||
case 47:
|
||||
return "上陡坡";
|
||||
case 48:
|
||||
return "下陡坡";
|
||||
case 49:
|
||||
return "过水路面";
|
||||
case 50:
|
||||
return "路面不平";
|
||||
case 52:
|
||||
return "慢行";
|
||||
case 53:
|
||||
return "注意危险";
|
||||
case 58:
|
||||
return "隧道";
|
||||
case 59:
|
||||
return "渡口";
|
||||
case 92:
|
||||
return "闯红灯";
|
||||
case 93:
|
||||
return "应急车道";
|
||||
case 94:
|
||||
return "非机动车道";
|
||||
case 100:
|
||||
return "不绑定电子眼高发地";
|
||||
case 101:
|
||||
return "车道违章";
|
||||
case 102:
|
||||
return "超速违章";
|
||||
}
|
||||
}
|
||||
|
||||
public void setDesc( String desc ) {
|
||||
this.mDesc = desc;
|
||||
public double getLon() {
|
||||
return mLon;
|
||||
}
|
||||
|
||||
public void setLon( double lon ) {
|
||||
this.mLon = lon;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
return mLat;
|
||||
}
|
||||
|
||||
public void setLat( double lat ) {
|
||||
this.mLat = lat;
|
||||
}
|
||||
|
||||
public int getTrafficType() {
|
||||
return mTrafficType;
|
||||
}
|
||||
|
||||
public void setTrafficType( int trafficType ) {
|
||||
this.mTrafficType = trafficType;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user