eagle 处理绘制轨迹所需的坐标转换

This commit is contained in:
lianglihui
2021-10-13 15:26:27 +08:00
parent a54b7c9c87
commit 846b6b591c
2 changed files with 28 additions and 7 deletions

View File

@@ -16,6 +16,7 @@ import androidx.annotation.Nullable;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.CoordinateConverter;
import com.amap.api.maps.TextureMapView;
import com.amap.api.maps.UiSettings;
import com.amap.api.maps.model.BitmapDescriptorFactory;
@@ -67,7 +68,7 @@ public class SmallMapDirectionView
private List<MogoLatLng> mCoordinatesLatLngCurrent = new ArrayList<>();
private Polyline mPolyline;
private CameraUpdate mCameraUpdate;
private Context mContext;
public SmallMapDirectionView(Context context) {
this(context, null);
}
@@ -86,6 +87,7 @@ public class SmallMapDirectionView
}
private void initView(Context context) {
mContext = context;
View smpView = LayoutInflater.from(context).inflate(R.layout.module_small_map_view, this);
mAMapNaviView = (TextureMapView)smpView.findViewById(R.id.aMapNaviView);
@@ -111,6 +113,7 @@ public class SmallMapDirectionView
);
}
});
}
@Override
@@ -232,11 +235,11 @@ public class SmallMapDirectionView
public void drawablePolyline(List<MogoLatLng> coordinates) {
clearPolyline();
mCoordinatesLatLng.clear();
for (MogoLatLng coordinate : coordinates) {
mCoordinatesLatLng.add(new LatLng(coordinate.getLat(), coordinate.getLon()));
}
List<LatLng> latLngs = CoordinateConverterFrom84ForList(mContext,coordinates);
mCoordinatesLatLng.addAll(latLngs);
// for (MogoLatLng coordinate : coordinates) {
// mCoordinatesLatLng.add(new LatLng(coordinate.getLat(), coordinate.getLon()));
// }
if (mAMap != null) {
if (mCoordinatesLatLng.size() > 2) {
// 设置开始结束Marker位置
@@ -254,7 +257,6 @@ public class SmallMapDirectionView
}
//第二个参数为四周留空宽度
mAMap.animateCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 65, 65, 65, 65));
// 绘制线
mPolyline = mAMap.addPolyline(
new PolylineOptions()
@@ -269,6 +271,24 @@ public class SmallMapDirectionView
}
}
public LatLng CoordinateConverterFrom84(Context mContext, MogoLatLng mogoLatLng){
CoordinateConverter mCoordinateConverter = new CoordinateConverter(mContext);
mCoordinateConverter.from(CoordinateConverter.CoordType.GPS);
mCoordinateConverter.coord(new LatLng(mogoLatLng.lat,mogoLatLng.lon));
LatLng latLng = mCoordinateConverter.convert();
return latLng;
}
public List<LatLng> CoordinateConverterFrom84ForList(Context mContext, List<MogoLatLng> mogoLatLngList){
List<LatLng> list = new ArrayList<>();
for (MogoLatLng m:mogoLatLngList) {
LatLng mogoLatLng = CoordinateConverterFrom84(mContext,m);
list.add(mogoLatLng);
}
return list;
}
@Override
public void clearPolyline() {
mCoordinatesLatLng.clear();