概述
一、工具
1.经纬度坐标拾取:百度坐标拾取系统。
2.常用坐标系投影系统
墨卡托:百度墨卡托投影坐标java
3.CAD
1)选中一条线,输入ls,可以列出坐标,一般不会全部显示,需要enter继续。
2 ) 图层的灵活使用
二、确定绘图比例尺
1.将地区实际区域在CAD上画出矩形边界后,计算出1m的实际距离在屏幕上是多少个像素。
2.比例尺决定统一大小的屏幕能显示多大实际区域。
三、设备上绘图
1.自定义View技术,建立车道图层和车辆图层自定义View。
2.坐标转换
经纬度->墨卡托平面坐标->Android绘图坐标
3.绘制车道、车辆图
纠偏:由于实际的数据有小数点,但是android绘图的API的参数是int类型,会用精度损失。如果车道图层移动的次数越多,误差积累就会越来越大。
纠偏的理论:将精度损失的位移积累起来,如果绝对值超过1,就做+-1的处理。
Pair<Double, Double> androidCenterCarPoint = LaneLayerDataHolder.getInstance().getAndroidPoint(getMeasuredHeight(), centerCarPoint);
Pair<Double, Double> androidLastWindowCenterPoint = LaneLayerDataHolder.getInstance().getAndroidPoint(getMeasuredHeight(), LaneLayerDataHolder.getInstance().getLastWindowCenterPoint());
//!!!!!!!!!!!!!!!!注意下面计算增量,会有精度损失。需要处理,否则地图偏移不对。!!!!!!!!!!!!!!!!!!!!!
int detX = (int) Math.round(androidCenterCarPoint.first - androidLastWindowCenterPoint.first);
int detY = (int) Math.round(androidCenterCarPoint.second - androidLastWindowCenterPoint.second);
Log.d(TAG, "updateMapPositionByCenterCar: detX = " + detX + ",detY = " + detY);
offsetLeftAndRight(-detX);
offsetTopAndBottom(-detY);
//纠偏
addUpDetX+=(androidCenterCarPoint.first - androidLastWindowCenterPoint.first-detX);
addUpDetY+=(androidCenterCarPoint.second - androidLastWindowCenterPoint.second-detY);
//Android-X方向
if(Math.abs(addUpDetX) >=1){
offsetLeftAndRight(addUpDetX > 0 ? -1 : 1);
if(addUpDetX > 0){
addUpDetX = addUpDetX -1;
}else{
addUpDetX = addUpDetX+1;
}
}
//Android-Y方向
if(Math.abs(addUpDetY) >=1){
offsetLeftAndRight(addUpDetY > 0 ? -1 : 1);
if(addUpDetY > 0){
addUpDetY = addUpDetY -1;
}else{
addUpDetY = addUpDetY + 1;
}
}
4.车道以车辆为中心联动
通过计算偏移量,将车道图层layout或者offsetLeftAndRight
5.
转载于:https://blog.51cto.com/4259297/2401717
最后
以上就是狂野母鸡为你收集整理的V2X项目小结的全部内容,希望文章能够帮你解决V2X项目小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复