Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
This commit is contained in:
commit
14ae6a695d
@ -130,6 +130,11 @@
|
|||||||
"code": 2041,
|
"code": 2041,
|
||||||
"name": "车道数"
|
"name": "车道数"
|
||||||
},
|
},
|
||||||
|
"2097":{
|
||||||
|
"table": "OMDB_PHY_LANENUM",
|
||||||
|
"code": 2097,
|
||||||
|
"name": "物理车道数"
|
||||||
|
},
|
||||||
"2083":{
|
"2083":{
|
||||||
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
|
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
|
||||||
"code": 2083,
|
"code": 2083,
|
||||||
@ -145,6 +150,7 @@
|
|||||||
"code": 2090,
|
"code": 2090,
|
||||||
"name": "车道施工",
|
"name": "车道施工",
|
||||||
"existSubCode": true,
|
"existSubCode": true,
|
||||||
|
"checkLinkId": false,
|
||||||
"catch":true,
|
"catch":true,
|
||||||
"zoomMin": 18,
|
"zoomMin": 18,
|
||||||
"zoomMax": 20
|
"zoomMax": 20
|
||||||
|
@ -327,8 +327,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code.toInt() -> {
|
DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code.toInt() -> {
|
||||||
var boundaryType =
|
var boundaryType = renderEntity.properties["boundaryType"]
|
||||||
renderEntity.properties["boundaryType"]
|
|
||||||
if (boundaryType != null) {
|
if (boundaryType != null) {
|
||||||
when (boundaryType.toInt()) {
|
when (boundaryType.toInt()) {
|
||||||
0, 1, 6, 8, 9 -> {
|
0, 1, 6, 8, 9 -> {
|
||||||
@ -444,7 +443,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (renderEntity.code.toInt() == DataCodeEnum.OMDB_INTERSECTION.code.toInt() && renderEntity.properties.containsKey(
|
} else if (renderEntity.code.toInt() == DataCodeEnum.OMDB_INTERSECTION.code.toInt()||renderEntity.code.toInt() == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code.toInt() && renderEntity.properties.containsKey(
|
||||||
"linkList"
|
"linkList"
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
@ -525,8 +524,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 对renderEntity做预处理后再保存
|
// 对renderEntity做预处理后再保存
|
||||||
val resultEntity =
|
val resultEntity = importConfig.transformProperties(renderEntity)
|
||||||
importConfig.transformProperties(renderEntity)
|
|
||||||
Log.d("ImportOMDBHelper", "解析===2预处理")
|
Log.d("ImportOMDBHelper", "解析===2预处理")
|
||||||
if (resultEntity != null) {
|
if (resultEntity != null) {
|
||||||
|
|
||||||
|
@ -3,9 +3,11 @@ package com.navinfo.omqs.db
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.navinfo.collect.library.data.entity.ReferenceEntity
|
import com.navinfo.collect.library.data.entity.ReferenceEntity
|
||||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||||
|
import com.navinfo.collect.library.enums.DataCodeEnum
|
||||||
import com.navinfo.collect.library.utils.GeometryTools
|
import com.navinfo.collect.library.utils.GeometryTools
|
||||||
import com.navinfo.omqs.Constant
|
import com.navinfo.omqs.Constant
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
|
import io.realm.RealmModel
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import org.locationtech.jts.algorithm.Angle
|
import org.locationtech.jts.algorithm.Angle
|
||||||
@ -62,8 +64,8 @@ class ImportPreProcess {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 如果是正向,则取最后一个点作为渲染图标的位置
|
// 如果是正向,则取最后一个点作为渲染图标的位置
|
||||||
var point = geometry!!.coordinates[geometry!!.coordinates.size-1]
|
var point = geometry!!.coordinates[geometry!!.coordinates.size - 1]
|
||||||
if (isReverse){
|
if (isReverse) {
|
||||||
// 逆向的话取第一个点作为渲染图标的位置
|
// 逆向的话取第一个点作为渲染图标的位置
|
||||||
point = geometry.coordinates[0]
|
point = geometry.coordinates[0]
|
||||||
}
|
}
|
||||||
@ -484,30 +486,90 @@ class ImportPreProcess {
|
|||||||
* 解析车道边线数据二级属性
|
* 解析车道边线数据二级属性
|
||||||
* */
|
* */
|
||||||
fun unpackingLaneBoundary(renderEntity: RenderEntity) {
|
fun unpackingLaneBoundary(renderEntity: RenderEntity) {
|
||||||
var shape: JSONObject = JSONObject(
|
|
||||||
mapOf(
|
if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
|
||||||
"lateralOffset" to 0,
|
|
||||||
"markType" to 1,
|
|
||||||
"markColor" to 0,
|
|
||||||
"markMaterial" to 1,
|
|
||||||
"markSeqNum" to 1,
|
|
||||||
"markWidth" to 10,
|
|
||||||
"markingCount" to 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
if (renderEntity.code == "2013" && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
|
|
||||||
// 解析shapeList,将数组中的属性放会properties
|
// 解析shapeList,将数组中的属性放会properties
|
||||||
val shapeList = JSONArray(renderEntity.properties["shapeList"])
|
val shapeList = JSONArray(renderEntity.properties["shapeList"])
|
||||||
for (i in 0 until shapeList.length()) {
|
val boundaryType = renderEntity.properties["boundaryType"]
|
||||||
shape = shapeList.getJSONObject(i)
|
val listResult = mutableListOf<RenderEntity>()
|
||||||
if (shape.optInt("lateralOffset", 0) == 0) {
|
if (boundaryType != null) {
|
||||||
break
|
var isExistOffSet0 = false
|
||||||
|
//只处理标线类型,App要求值渲染1、2、6、8
|
||||||
|
if (boundaryType.toInt() == 2) {
|
||||||
|
for (i in 0 until shapeList.length()) {
|
||||||
|
var shape = shapeList.getJSONObject(i)
|
||||||
|
val lateralOffset = shape.optInt("lateralOffset", 0)
|
||||||
|
//999999时不应用也不渲染
|
||||||
|
if (lateralOffset != 999999) {
|
||||||
|
//需要做偏移处理
|
||||||
|
if (lateralOffset != 0) {
|
||||||
|
|
||||||
|
when (shape.optInt("markType", 0)) {
|
||||||
|
1, 2, 6, 8 -> {
|
||||||
|
val renderEntityTemp = RenderEntity()
|
||||||
|
for (key in shape.keys()) {
|
||||||
|
renderEntityTemp.properties[key] = shape[key].toString()
|
||||||
|
}
|
||||||
|
renderEntityTemp.properties["qi_table"] =
|
||||||
|
renderEntity.properties["qi_table"]
|
||||||
|
renderEntityTemp.properties["qi_code"] =
|
||||||
|
renderEntity.properties["qi_code"]
|
||||||
|
renderEntityTemp.properties["qi_zoomMin"] =
|
||||||
|
renderEntity.properties["qi_zoomMin"]
|
||||||
|
renderEntityTemp.properties["qi_zoomMax"] =
|
||||||
|
renderEntity.properties["qi_zoomMax"]
|
||||||
|
renderEntityTemp.properties["name"] =
|
||||||
|
renderEntity.properties["name"]
|
||||||
|
renderEntityTemp.properties["qi_name"] =
|
||||||
|
renderEntity.properties["qi_name"]
|
||||||
|
renderEntityTemp.properties["boundaryType"] =
|
||||||
|
renderEntity.properties["boundaryType"]
|
||||||
|
renderEntityTemp.properties["featureClass"] =
|
||||||
|
renderEntity.properties["featureClass"]
|
||||||
|
renderEntityTemp.properties["featurePid"] =
|
||||||
|
renderEntity.properties["featurePid"]
|
||||||
|
|
||||||
|
renderEntityTemp.code = renderEntity.code
|
||||||
|
renderEntityTemp.table = renderEntity.table
|
||||||
|
renderEntityTemp.name = renderEntity.name
|
||||||
|
renderEntityTemp.zoomMin = renderEntity.zoomMin
|
||||||
|
renderEntityTemp.zoomMax = renderEntity.zoomMax
|
||||||
|
renderEntityTemp.enable = renderEntity.enable
|
||||||
|
renderEntityTemp.taskId = renderEntity.taskId
|
||||||
|
renderEntityTemp.catchEnable = renderEntity.catchEnable
|
||||||
|
var dis = -lateralOffset.toDouble() / 100000000
|
||||||
|
//最小值取10厘米,否正渲染太近无法显示
|
||||||
|
if (dis > 0 && dis < 0.0000028) {
|
||||||
|
dis = 0.0000028
|
||||||
|
} else if (dis > -0.0000028 && dis < 0) {
|
||||||
|
dis = -0.0000028
|
||||||
|
}
|
||||||
|
renderEntityTemp.geometry = GeometryTools.computeLine(
|
||||||
|
dis,
|
||||||
|
renderEntity.geometry
|
||||||
|
)
|
||||||
|
listResult.add(renderEntityTemp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
isExistOffSet0 = true
|
||||||
|
//遍历赋值
|
||||||
|
for (key in shape.keys()) {
|
||||||
|
renderEntity.properties[key] = shape[key].toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果不存在偏移的数据时,数据本身不渲染同时也不进行捕捉
|
||||||
|
if (!isExistOffSet0) {
|
||||||
|
renderEntity.catchEnable = 0
|
||||||
|
}
|
||||||
|
if (listResult.size > 0) {
|
||||||
|
insertData(listResult)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (key in shape.keys()) {
|
|
||||||
renderEntity.properties[key] = shape[key].toString()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -645,7 +707,9 @@ class ImportPreProcess {
|
|||||||
angleReference.renderEntityId = renderEntity.id
|
angleReference.renderEntityId = renderEntity.id
|
||||||
angleReference.name = "${renderEntity.name}车道中线面"
|
angleReference.name = "${renderEntity.name}车道中线面"
|
||||||
angleReference.table = renderEntity.table
|
angleReference.table = renderEntity.table
|
||||||
angleReference.geometry = GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000035).toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
angleReference.geometry =
|
||||||
|
GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000035)
|
||||||
|
.toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
||||||
angleReference.properties["qi_table"] = renderEntity.table
|
angleReference.properties["qi_table"] = renderEntity.table
|
||||||
angleReference.properties["widthProperties"] = "3"
|
angleReference.properties["widthProperties"] = "3"
|
||||||
angleReference.zoomMin = renderEntity.zoomMin
|
angleReference.zoomMin = renderEntity.zoomMin
|
||||||
@ -856,9 +920,9 @@ class ImportPreProcess {
|
|||||||
insertData(listResult)
|
insertData(listResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun insertData(list:List<ReferenceEntity>){
|
private fun insertData(list: List<RealmModel>) {
|
||||||
Log.e("qj", "子表插入==")
|
Log.e("qj", "子表插入==")
|
||||||
if(list!=null&& list.isNotEmpty()){
|
if (list != null && list.isNotEmpty()) {
|
||||||
Log.e("qj", "子表插入开始==")
|
Log.e("qj", "子表插入开始==")
|
||||||
Realm.getInstance(Constant.currentInstallTaskConfig).insert(list)
|
Realm.getInstance(Constant.currentInstallTaskConfig).insert(list)
|
||||||
Log.e("qj", "子表插入结束==")
|
Log.e("qj", "子表插入结束==")
|
||||||
@ -908,7 +972,8 @@ class ImportPreProcess {
|
|||||||
|
|
||||||
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
|
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
|
||||||
// renderEntity.geometry = WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
|
// renderEntity.geometry = WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
|
||||||
renderEntity.geometry = GeometryTools.createGeometry(GeoPoint(centerPoint!!.y, centerPoint.x)).toString()
|
renderEntity.geometry =
|
||||||
|
GeometryTools.createGeometry(GeoPoint(centerPoint!!.y, centerPoint.x)).toString()
|
||||||
val code = renderEntity.properties["signType"]
|
val code = renderEntity.properties["signType"]
|
||||||
renderEntity.properties["src"] = "assets:omdb/appendix/1105_${code}_0.svg"
|
renderEntity.properties["src"] = "assets:omdb/appendix/1105_${code}_0.svg"
|
||||||
}
|
}
|
||||||
@ -944,9 +1009,11 @@ class ImportPreProcess {
|
|||||||
val listResult = mutableListOf<ReferenceEntity>()
|
val listResult = mutableListOf<ReferenceEntity>()
|
||||||
|
|
||||||
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
|
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
|
||||||
renderEntity.geometry = WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
|
renderEntity.geometry =
|
||||||
|
WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
|
||||||
} else {
|
} else {
|
||||||
renderEntity.geometry = GeometryTools.createGeometry(GeoPoint(centerPoint!!.y, centerPoint.x)).toString()
|
renderEntity.geometry =
|
||||||
|
GeometryTools.createGeometry(GeoPoint(centerPoint!!.y, centerPoint.x)).toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -635,7 +635,7 @@ class MainViewModel @Inject constructor(
|
|||||||
*/
|
*/
|
||||||
private suspend fun captureItem(point: GeoPoint) {
|
private suspend fun captureItem(point: GeoPoint) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
var buffer = 3.2
|
var buffer = 8.0
|
||||||
if (mapController.mMapView.mapLevel >= 18) {
|
if (mapController.mMapView.mapLevel >= 18) {
|
||||||
buffer = 2.0
|
buffer = 2.0
|
||||||
}
|
}
|
||||||
@ -696,7 +696,7 @@ class MainViewModel @Inject constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
||||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
||||||
@ -848,7 +848,7 @@ class MainViewModel @Inject constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
||||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
||||||
|
@ -710,10 +710,10 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
|||||||
* 更新相机状态资源
|
* 更新相机状态资源
|
||||||
*/
|
*/
|
||||||
public void updateCameraResources(int statusType, int indexClentCamera) {
|
public void updateCameraResources(int statusType, int indexClentCamera) {
|
||||||
int resId = R.id.main_activity_camera;
|
int resId = R.id.main_activity_status_camera;
|
||||||
|
|
||||||
if (indexClentCamera == 2)
|
if (indexClentCamera == 2)
|
||||||
resId = R.id.main_activity_camera2;
|
resId = R.id.main_activity_status_camera;
|
||||||
|
|
||||||
Drawable drawable = context.getResources().getDrawable(R.drawable.icon_page_video_a0);
|
Drawable drawable = context.getResources().getDrawable(R.drawable.icon_page_video_a0);
|
||||||
|
|
||||||
@ -770,10 +770,10 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateCameraBackgroundResources(int drawable, int indexClentCamera) {
|
public void updateCameraBackgroundResources(int drawable, int indexClentCamera) {
|
||||||
int resId = R.id.main_activity_camera;
|
int resId = R.id.main_activity_status_camera;
|
||||||
|
|
||||||
if (indexClentCamera == 2)
|
if (indexClentCamera == 2)
|
||||||
resId = R.id.main_activity_camera2;
|
resId = R.id.main_activity_status_camera;
|
||||||
|
|
||||||
ImageView ivStatus = (ImageView) findViewById(resId);
|
ImageView ivStatus = (ImageView) findViewById(resId);
|
||||||
|
|
||||||
@ -1547,9 +1547,9 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
|||||||
private int getResId() {
|
private int getResId() {
|
||||||
|
|
||||||
if (getmDeviceNum() == 2)
|
if (getmDeviceNum() == 2)
|
||||||
return R.id.main_activity_camera2;
|
return R.id.main_activity_status_camera;
|
||||||
|
|
||||||
return R.id.main_activity_camera;
|
return R.id.main_activity_status_camera;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShareUtil getmShareUtil() {
|
public ShareUtil getmShareUtil() {
|
||||||
|
@ -104,14 +104,15 @@ class SignUtil {
|
|||||||
else -> ""
|
else -> ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//车道数
|
//物理车道数OMDB_PHY_LANENUM
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
DataCodeEnum.OMDB_LANE_NUM.code,
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code -> {
|
||||||
"${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
"${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
//常规点限速,条件点限速
|
//常规点限速,条件点限速
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
|
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(data)
|
||||||
data
|
|
||||||
)
|
|
||||||
//上下线分离
|
//上下线分离
|
||||||
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> {
|
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> {
|
||||||
if (data.properties["multiDigitized"] == "1") "上下线" else " "
|
if (data.properties["multiDigitized"] == "1") "上下线" else " "
|
||||||
@ -282,7 +283,8 @@ class SignUtil {
|
|||||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
||||||
list.addAll(getLinkSpeedLimitMoreInfo(data))
|
list.addAll(getLinkSpeedLimitMoreInfo(data))
|
||||||
}
|
}
|
||||||
//车道数
|
//车道数//增加物理车道数DataCodeEnum.OMDB_PHY_LANENUM.code
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code,
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
||||||
list.add(
|
list.add(
|
||||||
TwoItemAdapterItem(
|
TwoItemAdapterItem(
|
||||||
@ -1424,6 +1426,7 @@ class SignUtil {
|
|||||||
)
|
)
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
|
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
|
||||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
|
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append(
|
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append(
|
||||||
"${
|
"${
|
||||||
item.iconText.substringBefore(
|
item.iconText.substringBefore(
|
||||||
@ -1751,6 +1754,7 @@ class SignUtil {
|
|||||||
*/
|
*/
|
||||||
fun getRoadInfoIndex(element: RenderEntity): Int {
|
fun getRoadInfoIndex(element: RenderEntity): Int {
|
||||||
return when (element.code) {
|
return when (element.code) {
|
||||||
|
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> 0
|
DataCodeEnum.OMDB_LANE_NUM.code -> 0
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1
|
DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1
|
||||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2
|
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:state_checked="true" android:drawable="@drawable/icon_page_take_photo_a2">
|
||||||
|
</item>
|
||||||
|
<item android:state_selected="true" android:drawable="@drawable/icon_page_take_photo_a2">
|
||||||
|
</item>
|
||||||
|
<item android:drawable="@drawable/icon_page_take_photo_a3">
|
||||||
|
</item>
|
||||||
|
</selector>
|
@ -102,7 +102,7 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginRight="@dimen/top_right_drawer_btns_mr"
|
android:layout_marginRight="@dimen/top_right_drawer_btns_mr"
|
||||||
app:constraint_referenced_ids="main_activity_add_new,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_distance,main_activity_menu"
|
app:constraint_referenced_ids="main_activity_add_new,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_distance,main_activity_menu_layout"
|
||||||
app:flow_horizontalGap="6dp"
|
app:flow_horizontalGap="6dp"
|
||||||
app:flow_wrapMode="aligned"
|
app:flow_wrapMode="aligned"
|
||||||
app:layout_constraintRight_toLeftOf="@id/main_activity_right_fragment"
|
app:layout_constraintRight_toLeftOf="@id/main_activity_right_fragment"
|
||||||
@ -157,13 +157,29 @@
|
|||||||
android:onClick="@{()->mainActivity.onClickTaskLink()}"
|
android:onClick="@{()->mainActivity.onClickTaskLink()}"
|
||||||
android:src="@drawable/icon_add_road" />
|
android:src="@drawable/icon_add_road" />
|
||||||
|
|
||||||
<ImageButton
|
<FrameLayout
|
||||||
android:id="@+id/main_activity_menu"
|
android:id="@+id/main_activity_menu_layout"
|
||||||
android:layout_width="@dimen/top_right_drawer_wh"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="@dimen/top_right_drawer_wh"
|
android:layout_height="wrap_content">
|
||||||
android:background="@drawable/chk_icon_menu_open_close_xml"
|
|
||||||
android:elevation="2dp"
|
<ImageButton
|
||||||
android:onClick="@{()->mainActivity.onClickMenu()}" />
|
android:id="@+id/main_activity_menu"
|
||||||
|
android:layout_width="@dimen/top_right_drawer_wh"
|
||||||
|
android:layout_height="@dimen/top_right_drawer_wh"
|
||||||
|
android:background="@drawable/chk_icon_menu_open_close_xml"
|
||||||
|
android:elevation="2dp"
|
||||||
|
android:onClick="@{()->mainActivity.onClickMenu()}" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_marginLeft="16dp"
|
||||||
|
android:id="@+id/main_activity_status_camera"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:background="@drawable/chk_icon_camera_contect_discontect_xml"
|
||||||
|
android:elevation="2dp"
|
||||||
|
tools:ignore="DuplicateIds,MissingConstraints" />
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/main_activity_measuring_tool"
|
android:id="@+id/main_activity_measuring_tool"
|
||||||
|
@ -110,6 +110,7 @@
|
|||||||
android:src="@drawable/icon_camera_img" />
|
android:src="@drawable/icon_camera_img" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:visibility="gone"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/personal_center_menu_version"
|
android:id="@+id/personal_center_menu_version"
|
||||||
android:icon="@drawable/ic_baseline_layers_24"
|
android:icon="@drawable/ic_baseline_layers_24"
|
||||||
android:title="版本:23QE4_V1.5.6_20230928_A" />
|
android:title="版本:23QE4_V1.5.7_20231011_A" />
|
||||||
</group>
|
</group>
|
||||||
<group android:checkableBehavior="single">
|
<group android:checkableBehavior="single">
|
||||||
<item android:title="小标题">
|
<item android:title="小标题">
|
||||||
|
@ -1561,7 +1561,6 @@
|
|||||||
|
|
||||||
<!-- 杆状物 -->
|
<!-- 杆状物 -->
|
||||||
<m v="OMDB_POLE">
|
<m v="OMDB_POLE">
|
||||||
<!-- <line stroke="#000000" width="2" cap="butt"></line>-->
|
|
||||||
<symbol src="assets:omdb/icon_pole_3006.svg" symbol-height="56" symbol-width="56"></symbol>
|
<symbol src="assets:omdb/icon_pole_3006.svg" symbol-height="56" symbol-width="56"></symbol>
|
||||||
</m>
|
</m>
|
||||||
|
|
||||||
@ -1653,6 +1652,10 @@
|
|||||||
</m>
|
</m>
|
||||||
|
|
||||||
<m k="boundaryType" v="2">
|
<m k="boundaryType" v="2">
|
||||||
|
<!--标线-->
|
||||||
|
<m k="markType" v="0">
|
||||||
|
<line stroke="#eccc68" use="boundaryType" />
|
||||||
|
</m>
|
||||||
<!--标线-->
|
<!--标线-->
|
||||||
<m k="markType" v="1">
|
<m k="markType" v="1">
|
||||||
<m k="markColor" v="1">
|
<m k="markColor" v="1">
|
||||||
|
@ -33,6 +33,7 @@ enum class DataCodeEnum(var tableName: String, var code: String) {
|
|||||||
OMDB_RAMP_7("高速直连出口匝道高速出入口匝道", "2037-7"),
|
OMDB_RAMP_7("高速直连出口匝道高速出入口匝道", "2037-7"),
|
||||||
OMDB_MULTI_DIGITIZED("上下线分离", "2040"),
|
OMDB_MULTI_DIGITIZED("上下线分离", "2040"),
|
||||||
OMDB_LANE_NUM("车道数", "2041"),
|
OMDB_LANE_NUM("车道数", "2041"),
|
||||||
|
OMDB_PHY_LANENUM("物理车道数", "2097"),
|
||||||
OMDB_VIADUCT("高架", "2043"),
|
OMDB_VIADUCT("高架", "2043"),
|
||||||
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"),
|
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"),
|
||||||
OMDB_LANE_CONSTRUCTION("车道施工", "2090"),
|
OMDB_LANE_CONSTRUCTION("车道施工", "2090"),
|
||||||
|
@ -1531,6 +1531,35 @@ public class GeometryTools {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dist 0.00001为一米 大于0为左侧,小于0为右侧
|
||||||
|
* @param wkt 几何
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String computeLine(Double dist,String wkt){
|
||||||
|
if(!TextUtils.isEmpty(wkt)){
|
||||||
|
Geometry lineString1 = GeometryTools.createGeometry(wkt);
|
||||||
|
BufferParameters parameters1 = new BufferParameters();
|
||||||
|
parameters1.setJoinStyle(BufferParameters.CAP_FLAT);
|
||||||
|
parameters1.setEndCapStyle(BufferParameters.CAP_FLAT);
|
||||||
|
parameters1.setSingleSided(true);
|
||||||
|
|
||||||
|
Geometry buffer = BufferOp.bufferOp(lineString1, dist, parameters1);
|
||||||
|
int coorsLength = lineString1.getCoordinates().length;
|
||||||
|
List<Coordinate> list = new ArrayList<>();
|
||||||
|
for (int i = coorsLength; i < buffer.getCoordinates().length-1; i++) {
|
||||||
|
list.add(buffer.getCoordinates()[i]);
|
||||||
|
}
|
||||||
|
Coordinate[] coordinates = new Coordinate[list.size()];
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
coordinates[i] = list.get(i);
|
||||||
|
}
|
||||||
|
String lineString = createLineString(coordinates).toString();
|
||||||
|
return lineString;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
public static FootAndDistance pointToLineDistance(GeoPoint point, Geometry geometry) {
|
public static FootAndDistance pointToLineDistance(GeoPoint point, Geometry geometry) {
|
||||||
//定义垂线
|
//定义垂线
|
||||||
FootAndDistance pointPairDistance = new FootAndDistance(point);
|
FootAndDistance pointPairDistance = new FootAndDistance(point);
|
||||||
|
2
vtm
2
vtm
@ -1 +1 @@
|
|||||||
Subproject commit 6a6bb9ab5eaf6bb4c05b3110c612c32ef4c6ef3d
|
Subproject commit 9e0cc6dcdce04d1082ed6459e8810d6329e8cfdc
|
Loading…
x
Reference in New Issue
Block a user