171 lines
4.2 KiB
Java
171 lines
4.2 KiB
Java
package com.mogo.map;
|
||
|
||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||
import com.mogo.map.center.CenterLine;
|
||
import com.mogo.map.marker.IMogoMarker;
|
||
import com.mogo.map.marker.MogoMarkerOptions;
|
||
import com.mogo.map.overlay.IMogoPolyline;
|
||
import com.mogo.map.overlay.MogoPolylineOptions;
|
||
import com.mogo.map.road.RoadNameInfo;
|
||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.HashMap;
|
||
|
||
import mogo.telematics.pad.MessagePad;
|
||
import mogo.yycp.api.proto.SocketDownData;
|
||
|
||
/**
|
||
* @author congtaowang
|
||
* @since 2019-12-18
|
||
* <p>
|
||
* 地图控制接口
|
||
*/
|
||
public interface IMogoMap {
|
||
|
||
/**
|
||
* 获取地图ui控制器,可以控制内置ui(缩放按钮、指北针等)是否显示及部分手势(滑动、双指缩放等)是否可用。
|
||
*
|
||
* @return
|
||
*/
|
||
IMogoUiSettings getUiSettings();
|
||
|
||
/**
|
||
* 操作地图视图
|
||
*
|
||
* @return
|
||
*/
|
||
IMogoMapUIController getUIController();
|
||
|
||
/**
|
||
* 在地图上添一个图片标记(marker)对象。
|
||
*
|
||
* @param tag 标识服务
|
||
* @param options
|
||
* @return
|
||
*/
|
||
IMogoMarker addMarker(String tag, MogoMarkerOptions options);
|
||
|
||
/**
|
||
* 清除所有marker
|
||
*/
|
||
void clearAllMarkers();
|
||
|
||
/**
|
||
* 批量更新锚点位置
|
||
*
|
||
* @param optionsArrayList 锚点集合
|
||
*/
|
||
void updateBatchMarkerPosition(HashMap<String, MessagePad.TrackedObject> optionsArrayList);
|
||
|
||
/**
|
||
* 批量更新锚点位置
|
||
*
|
||
* @param optionsArrayList 锚点集合
|
||
*/
|
||
void updateBatchAiMarkerPosition(HashMap<String, SocketDownData.CloudRoadDataProto> optionsArrayList);
|
||
|
||
/**
|
||
* 添加感知使用到的3d模型
|
||
*
|
||
* @param type
|
||
* @param modelRes
|
||
*/
|
||
String addPreVehicleModel(int type, int modelRes);
|
||
|
||
/**
|
||
* 要移除的感知数据uuid
|
||
*
|
||
* @param uuidString
|
||
*/
|
||
void removeMarker(String uuidString);
|
||
|
||
/**
|
||
* 在地图上添一组图片标记(marker)对象,并设置是否改变地图状态以至于所有的marker对象都在当前地图可视区域范围内显示。
|
||
*
|
||
* @param tag 标识服务
|
||
* @param options
|
||
* @param moveToCenter
|
||
* @return
|
||
*/
|
||
ArrayList<IMogoMarker> addMarkers(String tag, ArrayList<MogoMarkerOptions> options, boolean moveToCenter);
|
||
|
||
/**
|
||
* 从地图上删除所有的overlay(marker,circle,polyline 等对象)。
|
||
*/
|
||
void clear();
|
||
|
||
/**
|
||
* 从地图上删除所有的覆盖物(marker,circle,polyline 等对象),但myLocationOverlay(内置定位覆盖物)除外。
|
||
*
|
||
* @param isKeepMyLocationOverlay
|
||
*/
|
||
void clear(boolean isKeepMyLocationOverlay);
|
||
|
||
/**
|
||
* 设置屏幕上的某个像素点为地图中心点。
|
||
*
|
||
* @param x
|
||
* @param y
|
||
*/
|
||
void setPointToCenter(int x, int y);
|
||
|
||
/**
|
||
* 获取比例尺
|
||
*
|
||
* @return 当前缩放级别下,地图上1像素点对应的长度,单位米
|
||
*/
|
||
float getScalePerPixel();
|
||
|
||
/**
|
||
* 改变地图缩放级别
|
||
*
|
||
* @param zoom
|
||
*/
|
||
void changeZoom(float zoom);
|
||
|
||
/**
|
||
* 获取缩放比例
|
||
*
|
||
* @return
|
||
*/
|
||
float getZoomLevel();
|
||
|
||
/**
|
||
* 获取道路的宽度
|
||
*/
|
||
float getRoadWidth(double lon, double lat, float angle, boolean isGpsLocation, boolean isRTK);
|
||
|
||
/**
|
||
* 添加线段
|
||
*
|
||
* @param options
|
||
* @return
|
||
*/
|
||
IMogoPolyline addPolyline(MogoPolylineOptions options);
|
||
|
||
/**
|
||
* 获取行驶方向一定长度的中心线
|
||
*
|
||
* @param lon 经度
|
||
* @param lat 纬度
|
||
* @param angle 航向角
|
||
* @param distance 获取车道中心线的长度,> 0: 行驶方向前方距离, <0 行驶方向后方距离
|
||
* @return 中心线相关数据
|
||
*/
|
||
CenterLine getCenterLineRangeInfo(double lon, double lat, float angle, float distance);
|
||
|
||
|
||
/**
|
||
* 根据自车经纬度和航向角,获取道路名称
|
||
*
|
||
* @param lon 经度
|
||
* @param lat 纬度
|
||
* @param angle 航向角
|
||
* @return 道路名称等相关信息
|
||
*/
|
||
RoadNameInfo getRoadName(double lon, double lat, float angle);
|
||
|
||
|
||
}
|