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 *

* 地图控制接口 */ 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 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); }