过滤掉车道边界类型无偏移数据,且无offset为0的数据不参与捕捉业务

This commit is contained in:
qiji4215 2023-10-11 14:26:56 +08:00
parent 0ae4a00346
commit f0c6e633eb
2 changed files with 48 additions and 35 deletions

View File

@ -325,8 +325,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 -> {
@ -521,8 +520,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) {

View File

@ -438,32 +438,42 @@ class ImportPreProcess {
val shapeList = JSONArray(renderEntity.properties["shapeList"]) val shapeList = JSONArray(renderEntity.properties["shapeList"])
val boundaryType = renderEntity.properties["boundaryType"] val boundaryType = renderEntity.properties["boundaryType"]
val listResult = mutableListOf<RenderEntity>() val listResult = mutableListOf<RenderEntity>()
for (i in 0 until shapeList.length()) { if (boundaryType != null) {
var shape = shapeList.getJSONObject(i) var isExistOffSet0 = false
val lateralOffset = shape.optInt("lateralOffset", 0) //只处理标线类型,App要求值渲染1、2、6、8
//999999时不应用也不渲染 if (boundaryType.toInt() == 2) {
if (lateralOffset != 999999) { for (i in 0 until shapeList.length()) {
//需要做偏移处理 var shape = shapeList.getJSONObject(i)
if (lateralOffset != 0) { val lateralOffset = shape.optInt("lateralOffset", 0)
if (boundaryType != null) { //999999时不应用也不渲染
//只处理标线类型,App要求值渲染1、2、6、8 if (lateralOffset != 999999) {
if(boundaryType.toInt()==2){ //需要做偏移处理
val markType = shape.optInt("markType",0) if (lateralOffset != 0) {
when(markType){
when (shape.optInt("markType", 0)) {
1, 2, 6, 8 -> { 1, 2, 6, 8 -> {
val renderEntityTemp = RenderEntity() val renderEntityTemp = RenderEntity()
for (key in shape.keys()) { for (key in shape.keys()) {
renderEntityTemp.properties[key] = shape[key].toString() renderEntityTemp.properties[key] = shape[key].toString()
} }
renderEntityTemp.properties["qi_table"] = renderEntity.properties["qi_table"] renderEntityTemp.properties["qi_table"] =
renderEntityTemp.properties["qi_code"] = renderEntity.properties["qi_code"] renderEntity.properties["qi_table"]
renderEntityTemp.properties["qi_zoomMin"] = renderEntity.properties["qi_zoomMin"] renderEntityTemp.properties["qi_code"] =
renderEntityTemp.properties["qi_zoomMax"] = renderEntity.properties["qi_zoomMax"] renderEntity.properties["qi_code"]
renderEntityTemp.properties["name"] = renderEntity.properties["name"] renderEntityTemp.properties["qi_zoomMin"] =
renderEntityTemp.properties["qi_name"] = renderEntity.properties["qi_name"] renderEntity.properties["qi_zoomMin"]
renderEntityTemp.properties["boundaryType"] = renderEntity.properties["boundaryType"] renderEntityTemp.properties["qi_zoomMax"] =
renderEntityTemp.properties["featureClass"] = renderEntity.properties["featureClass"] renderEntity.properties["qi_zoomMax"]
renderEntityTemp.properties["featurePid"] = renderEntity.properties["featurePid"] 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.code = renderEntity.code
renderEntityTemp.table = renderEntity.table renderEntityTemp.table = renderEntity.table
@ -475,9 +485,9 @@ class ImportPreProcess {
renderEntityTemp.catchEnable = renderEntity.catchEnable renderEntityTemp.catchEnable = renderEntity.catchEnable
var dis = -lateralOffset.toDouble() / 100000000 var dis = -lateralOffset.toDouble() / 100000000
//最小值取10厘米否正渲染太近无法显示 //最小值取10厘米否正渲染太近无法显示
if(dis>0&&dis<0.0000025){ if (dis > 0 && dis < 0.0000025) {
dis = 0.0000025 dis = 0.0000025
}else if(dis>-0.0000025&&dis<0){ } else if (dis > -0.0000025 && dis < 0) {
dis = -0.0000025 dis = -0.0000025
} }
renderEntityTemp.geometry = GeometryTools.computeLine( renderEntityTemp.geometry = GeometryTools.computeLine(
@ -487,19 +497,24 @@ class ImportPreProcess {
listResult.add(renderEntityTemp) listResult.add(renderEntityTemp)
} }
} }
} else {
isExistOffSet0 = true
//遍历赋值
for (key in shape.keys()) {
renderEntity.properties[key] = shape[key].toString()
}
} }
} }
} else { }
//遍历赋值 //如果不存在偏移的数据时,数据本身不渲染同时也不进行捕捉
for (key in shape.keys()) { if (!isExistOffSet0) {
renderEntity.properties[key] = shape[key].toString() renderEntity.catchEnable = 0
} }
if (listResult.size > 0) {
insertData(listResult)
} }
} }
} }
if (listResult.size > 0) {
insertData(listResult)
}
} }
} }