194 lines
4.6 KiB
Java
194 lines
4.6 KiB
Java
package com.mogo.map;
|
||
|
||
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;
|
||
|
||
/**
|
||
* @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 );
|
||
|
||
|
||
/**
|
||
* 批量更新锚点位置
|
||
*
|
||
* @param optionsArrayList 锚点集合
|
||
*/
|
||
void updateBatchMarkerPosition(HashMap<String,MessagePad.TrackedObject> 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 );
|
||
|
||
/**
|
||
* 设置地图POI是否允许点击。
|
||
*
|
||
* @param touchPoiEnable
|
||
*/
|
||
void setTouchPoiEnable( boolean touchPoiEnable );
|
||
|
||
/**
|
||
* 设置是否打开交通路况图层。
|
||
*
|
||
* @param enable
|
||
*/
|
||
void setTrafficEnable( boolean enable );
|
||
|
||
/**
|
||
* 设置是否显示3D建筑物,默认显示。
|
||
*
|
||
* @param enabled
|
||
*/
|
||
void showBuildings( boolean enabled );
|
||
|
||
/**
|
||
* 设置是否显示室内地图,默认不显示。
|
||
*
|
||
* @param enable
|
||
*/
|
||
void showIndoorMap( boolean enable );
|
||
|
||
/**
|
||
* 设置是否显示底图文字标注,默认显示。
|
||
*
|
||
* @param enable
|
||
*/
|
||
void showMapText( boolean enable );
|
||
|
||
/**
|
||
* 停止当前执行的改变地图状态的动画。
|
||
*/
|
||
void stopAnimation();
|
||
|
||
/**
|
||
* 获取比例尺
|
||
*
|
||
* @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);
|
||
}
|