() {
listener.romaStatus(romaStatus)
}
}
+
+ fun invokeRomaDistance(distance: String) {
+ M_LISTENERS.forEach {
+ val listener = it.value
+ listener.romaDistance(distance)
+ }
+ }
+
}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 42da2a6b33..80ce28aa19 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -80,7 +80,7 @@ MOGO_LOCATION_VERSION=1.4.7.16
MOGO_TELEMATIC_VERSION=1.4.7.16
######## MogoAiCloudSDK Version ########
# 自研地图
-MAP_SDK_VERSION=2.14.3.7
+MAP_SDK_VERSION=2.14.3.9
MAP_SDK_OPERATION_VERSION=1.1.4.1
# websocket
WEBSOCKET_VERSION=1.1.7
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
new file mode 100644
index 0000000000..05e423ca97
--- /dev/null
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java
@@ -0,0 +1,411 @@
+package com.mogo.map.uicontroller;
+
+import android.graphics.Point;
+import android.graphics.Rect;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.RawRes;
+
+import com.mogo.eagle.core.data.map.CenterLine;
+import com.mogo.eagle.core.data.map.MogoLatLng;
+import com.mogo.map.hdcache.IHdCacheListener;
+
+import org.json.JSONObject;
+import com.mogo.eagle.core.data.map.MogoLocation;
+
+import java.util.List;
+
+
+/**
+ * @author congtaowang
+ * @since 2019-12-26
+ *
+ * 地图UI控制
+ */
+public interface IMogoMapUIController {
+
+
+ /**
+ * 修改缩放级别
+ */
+ MapControlResult changeZoom(float zoom);
+
+
+ /**
+ * 修改缩放级别的另一种方式
+ * @param zoom 缩放比例
+ */
+ void changeZoom2(float zoom);
+
+ /**
+ * 设置地图是否是Debug模式
+ *
+ * @param debugMode 是否开启Debug模式
+ */
+ void setDebugMode(Boolean debugMode);
+
+ /**
+ * 进入VR 模式
+ *
+ * @param isDayMode true-白天模式,false-夜间模式
+ */
+ void stepInVrMode(boolean isDayMode);
+
+ /**
+ * 切换3D模式下远距,中距,近距视角
+ *
+ * @param angelMode {@link VisualAngleMode}
+ */
+ void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng);
+
+ /**
+ * 切换视角锁定,用于启动/关闭漫游
+ * @param lock 锁定值
+ */
+ void visualAngleLock(boolean lock);
+
+ /**
+ * 设置漫游路径
+ * @param trajectory
+ */
+ void setRoamTrajectory(String trajectory);
+
+ /**
+ * 设置漫游模式 , 0:自由漫游,1:路径漫游
+ */
+ void setRomaMode(int mode);
+
+ /**
+ * 获得当前地图视距模式
+ *
+ * @return {@link VisualAngleMode}
+ */
+ VisualAngleMode getCurrentMapVisualAngle();
+
+ /**
+ * 将地图移动至当前位置
+ */
+ default void moveToCenter(MogoLatLng latLng) {
+ moveToCenter(latLng, false);
+ }
+
+ /**
+ * 将地图移动至当前位置
+ */
+ void moveToCenter(MogoLatLng latLng, boolean animate);
+
+ /**
+ * 是否白天模式
+ * @return
+ */
+ boolean isDayMode();
+
+ /**
+ * 显示我的位置
+ *
+ * @param visible true - 显示 false - 不显示
+ */
+ void showMyLocation(boolean visible);
+
+ /**
+ * @param view
+ */
+ void showMyLocation(View view);
+
+ /**
+ * 获取比例尺数据
+ *
+ * @return 当前缩放级别下,地图上1像素点对应的长度,单位米
+ */
+ float getScalePerPixel();
+
+ /**
+ * 获取缩放比例
+ */
+ float getZoomLevel();
+
+ /**
+ * 获取道路的宽度
+ */
+ float getRoadWidth(double lon, double lat, float angle, boolean isGpsLocation, boolean isRTK);
+
+ /**
+ * 获取视图东北角坐标
+ */
+ MogoLatLng getCameraNorthEastPosition();
+
+ /**
+ * 获取视图西南角坐标
+ */
+ MogoLatLng getCameraSouthWestPosition();
+
+ /**
+ * 获取视图中心点坐标
+ */
+ MogoLatLng getWindowCenterLocation();
+
+ /**
+ * 设置地图中心点
+ *
+ * @param mapCenterX x 点位置x值与地图宽度的比例
+ * @param mapCenterY y 点位置x值与地图高度的比例
+ */
+ void setPointToCenter(double mapCenterX, double mapCenterY);
+
+ /**
+ * 获取经纬度对应的屏幕的位置
+ */
+ Point getLocationPointInScreen(MogoLatLng latLng);
+
+ /**
+ * 获取像素点对应的经纬度
+ */
+ MogoLatLng getLocationMogoLatLngInScreen(Point point);
+
+ /**
+ * 设置刷新帧率
+ */
+ void setRenderFps(int fps);
+
+ /**
+ * @param tag 调用业务
+ * @param carPosition 当前位置
+ * @param lonLats 经纬度围成的范围
+ * @param bound 地图上可显示的范围
+ * @param lockCarPosition 是否锁定车辆位置
+ */
+ void showBounds(String tag, MogoLatLng carPosition, List lonLats, Rect bound, boolean lockCarPosition);
+
+ /**
+ * 强制刷新地图
+ */
+ void forceRender();
+
+ /**
+ * 计算两点之间的距离
+ *
+ * @param p1
+ * @param p2
+ * @return
+ */
+ float calculateLineDistance(MogoLatLng p1, MogoLatLng p2) throws Exception;
+
+ /**
+ * 锁车状态
+ *
+ * @return
+ */
+ boolean isCarLocked();
+
+ /**
+ * 配置自车图标样式
+ *
+ * @param option 为空时使用
+ * 默认配置
+ */
+ void setCarCursorOption(@Nullable CarCursorOption option);
+
+ /**
+ * @param type :车尾灯类型 0=默认 1=左黄 2=右黄 3=双黄 4=双红
+ * @param time: 闪烁时间 最小500ms 小于500ms 默认为500ms
+ */
+ void setCarLightsType(int type, int time);
+
+ /**
+ * 获取地图视图描述快照
+ *
+ * @return
+ */
+ MapCameraPosition getMapCameraPosition();
+
+ /**
+ * 切换地图视图视角
+ *
+ * @param bearing
+ */
+ void changeBearing(float bearing);
+
+ /**
+ * 修改地图中心
+ * MapAutoApi.CAR_CENTER_100 = 1
+ * MapAutoApi.CAR_QUARTER_100 = 2
+ * MapAutoApi.CAR_TWO_FIFTHS_100 = 3
+ * MapAutoApi.CAR_TWO_FIFTHS_80= 4
+ * MapAutoApi.CAR_AFTER_30_FRONT_80 = 5
+ * MapAutoApi.CAR_AFTER_30_FRONT_100 = 6
+ * MapAutoApi.CAR_AFTER_30_FRONT_120 = 7
+ * MapAutoApi.CAR_AFTER_40_FRONT_80= 8
+ * MapAutoApi.CAR_AFTER_40_FRONT_100 = 9
+ * MapAutoApi.CAR_AFTER_40_FRONT_120 = 10
+ */
+ void changeMapViewAngle(int type);
+
+ /**
+ * 修改高精地图自车图标
+ * 传入资源ID
+ */
+ void changeCurrentIcon(@RawRes int iconId);
+
+ /**
+ * 获取瓦片id
+ *
+ * @param lon 经度
+ * @param lat 纬度
+ * @return 瓦片id
+ */
+ long getTileId(double lon, double lat);
+
+
+ /**
+ * 获取限速
+ *
+ * @param lon
+ * @param lat
+ * @param angle
+ * @return
+ */
+ int getLimitSpeed(double lon, double lat, float angle);
+
+ /**
+ * 获取车道中心线信息
+ *
+ * @param lon
+ * @param lat
+ * @param angle
+ * @return
+ */
+ CenterLine getCenterLineInfo(double lon, double lat, float angle);
+
+ /**
+ * 自研地图是否匹配道路
+ *
+ * @param enable
+ */
+ default void rtkEnable(boolean enable) {
+
+ }
+
+ default void destroy() {
+
+ }
+
+ /**
+ * 获取车速资源缓存 id
+ *
+ * @param speedVal
+ * @return
+ */
+ default String getMarkerInfoResName(String speedVal) {
+ return "";
+ }
+
+ /**
+ * 获取车速资源缓存 id
+ *
+ * @param speedVal
+ * @return
+ */
+ default void setMarkerInfoResName(String speedVal, String val) {
+
+ }
+
+ /**
+ * 设置地图视线角度
+ */
+ void setMapDAngle(float angle);
+
+ /**
+ * 获取行车方向
+ *
+ * @return
+ */
+ float getAngle(double startLon, double startLat, double endLon, double endLat);
+
+ /**
+ * 获取当前道路方向
+ *
+ * @return angle
+ */
+ Double getRoadAngle(Double lon, Double lat, float angle);
+
+ /**
+ * 设置锁屏模式
+ */
+ void setLockMode(boolean isLock);
+
+ /**
+ * 设置手势滑动失效
+ */
+ void setScrollGesturesEnable(boolean isEnable);
+
+ /**
+ * 设置所有的滑动失效
+ */
+ void setAllGesturesEnabled(boolean isEnable);
+
+ /**
+ * 设置外界坐标系
+ *
+ * @param gnssInfo RTK 高精坐标,车辆惯导数据
+ */
+ void setExtraGPSData(MogoLocation gnssInfo);
+
+ /**
+ * 打开点云绘制
+ *
+ * @param isDrawPointCloud 是否绘制点云
+ */
+ void setIsDrawPointCloud(Boolean isDrawPointCloud);
+
+ /**
+ * 设制点云大小
+ *
+ * @param pointCloudSize 点云的点大小
+ */
+ void setPointCloudSize(Float pointCloudSize);
+
+ /**
+ * 设置点云颜色
+ *
+ * @param color // color:"#RRGGBB*
+ */
+ void setPointCloudColor(String color);
+ void cacheHDDataByCity(IHdCacheListener listener);
+
+ void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location);
+
+ /**
+ * 当前城市离线数据是否已缓存
+ * @return
+ */
+ boolean isCityDataCached();
+
+ void cancelDownloadCacheData();
+
+ String getCityCode();
+
+ /**
+ * 自动切换视角到指定点,包含过渡动画,并持续指定duration毫秒
+ *
+ * @param lon 经度
+ * @param lat 纬度
+ * @param rotateAngle 旋转角度
+ * @param duration 持续时间
+ * @param isGps 是否是高精坐标
+ */
+ void animateTo(double lon, double lat, float rotateAngle, int duration, boolean isGps);
+
+
+ /**
+ * 自动切换视角到指定点,包含过渡动画,并持续指定duration毫秒
+ *
+ * @param lon 经度
+ * @param lat 纬度
+ * @param v1 旋转角度
+ * @param v2 持续时间
+ * @param v3
+ * @param v4
+ */
+ void animateTo(double lon, double lat, float v1, float v2, float v3, float v4, int duration, boolean isGps);
+}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
index 6a5dfd35f4..5b045dd1e0 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java
@@ -139,7 +139,7 @@ public class AMapWrapper implements IMogoMap {
}
long time = markerOptionsArrayList.get(0).getTime();
batchMarkerOptions.list = markerOptionsArrayList;
-// batchMarkerOptions.averageFlag = 0;
+ batchMarkerOptions.averageFlag = 0;
batchMarkerOptions.delayStrategy = false;
batchMarkerOptions.ruleAngle = 8.0f;
batchMarkerOptions.controlIcon = 1;
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java
new file mode 100644
index 0000000000..e69de29bb2