[VisualAngle]升级地图sdk:修正crash;添加坐标转换;优化视角切换逻辑
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.mogo.map;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_DEVA;
|
||||
import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_300;
|
||||
import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS;
|
||||
import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_TOP;
|
||||
@@ -29,7 +30,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
|
||||
@@ -177,7 +177,7 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
public void onRoadIdInfo(@androidx.annotation.Nullable String roadId) {
|
||||
|
||||
if (roadId != null && !TextUtils.isEmpty(roadId)) {
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onRoadIdInfo::" + roadId);
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "onRoadIdInfo::" + roadId);
|
||||
CallerMapRoadListenerManager.INSTANCE.invokeListenersOnRoadIdGet(roadId);
|
||||
} else {
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onRoadIdInfo::null");
|
||||
@@ -190,37 +190,39 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
if (stopLine != null && !TextUtils.isEmpty(stopLine.road_id) && stopLine.points != null && stopLine.points.size() > 0) {
|
||||
ArrayList<LonLatPoint> points = stopLine.points;
|
||||
if (carLoc != null) {
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
/**
|
||||
* //地图组提供的高德坐标切到WGS84坐标系
|
||||
* var cal = LonLatPoint(point!!.lon, point!!.lat)
|
||||
* if(!point!!.provider.equals(MapAutoApi.GPS_FLAG)){
|
||||
* cal = MapTools.switchLonLatWGS84(cal)
|
||||
* }
|
||||
*/
|
||||
String provider = carLoc.getProvider();
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "car_loc: " + carLoc + "");
|
||||
if (!MapAutoApi.GPS_FLAG.equals(provider)) {
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "convert before: car_loc: {lon: " + carLoc.getLongitude() + ", lat: " + carLoc.getLatitude() + "}");
|
||||
LonLatPoint p = new LonLatPoint(carLoc.getLongitude(), carLoc.getLatitude());
|
||||
p = MapTools.INSTANCE.switchLonLatWGS84(p);
|
||||
carLoc.setLongitude(p.longitude);
|
||||
carLoc.setLatitude(p.latitude);
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "convert after: car_loc: {lon: " + carLoc.getLongitude() + ", lat: " + carLoc.getLatitude() + "}");
|
||||
}
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo:stop_line" + stopLine + ", car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
MapRoadInfo.StopLine stopInfo = convert(stopLine);
|
||||
LonLatPoint match = new LonLatPoint();
|
||||
double ret = MapDataApi.INSTANCE.GetDisFromPointToLine(convert(carLoc), points, match, 1);
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo: --- ret: "+ ret);
|
||||
LonLatPoint p1 = points.get(0);
|
||||
LonLatPoint p2 = points.get(points.size() - 1);
|
||||
double distanceOfCarToStopLine = MapDataApi.INSTANCE.getNearstFromPointToSegment(carLoc.getLongitude(), carLoc.getLatitude(), p1.longitude, p1.latitude, p2.longitude, p2.latitude);
|
||||
double distanceOfCarToStopLine = MapDataApi.INSTANCE.getNearstFromPointToSegment(carLoc.getLongitude(), carLoc.getLatitude(), p1.longitude, p1.latitude, p2.longitude, p2.latitude) * 10_0000;
|
||||
stopInfo.setDistanceOfCarToStopLine(distanceOfCarToStopLine);
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo: --- distance: "+ distanceOfCarToStopLine);
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo: --- distance: "+ distanceOfCarToStopLine);
|
||||
CallerMapRoadListenerManager.INSTANCE.invokeListenersOnStopLineGet(stopInfo);
|
||||
}
|
||||
} else {
|
||||
if (carLoc != null) {
|
||||
CallerLogger.INSTANCE.d("${M_DEVA}${TAG}", "onStopLineInfo::null, car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
CallerLogger.INSTANCE.d(M_DEVA + TAG, "onStopLineInfo::null, car_loc:{lon: " + carLoc.getLatitude() + ", lat: " + carLoc.getLongitude() + "}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private @NotNull LonLatPoint convert(MogoLocation location) {
|
||||
LonLatPoint point = new LonLatPoint();
|
||||
point.latitude = location.getLatitude();
|
||||
point.longitude = location.getLongitude();
|
||||
point.altitude = location.getAltitude();
|
||||
point.angle = location.getBearing();
|
||||
point.speed = location.getSpeed();
|
||||
point.angle = location.getBearing();
|
||||
point.provider = location.getProvider();
|
||||
return point;
|
||||
}
|
||||
|
||||
private MapRoadInfo.StopLine convert(StopLine line) {
|
||||
MapRoadInfo.StopLine ret = new MapRoadInfo.StopLine();
|
||||
ret.setDistance(line.distance);
|
||||
|
||||
Reference in New Issue
Block a user