From f0c6e633eb53589a37cd99069e229378de073801 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Wed, 11 Oct 2023 14:26:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=8E=89=E8=BD=A6=E9=81=93?= =?UTF-8?q?=E8=BE=B9=E7=95=8C=E7=B1=BB=E5=9E=8B=E6=97=A0=E5=81=8F=E7=A7=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=8C=E4=B8=94=E6=97=A0offset=E4=B8=BA0?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=8F=82=E4=B8=8E=E6=8D=95?= =?UTF-8?q?=E6=8D=89=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/db/ImportOMDBHelper.kt | 6 +- .../com/navinfo/omqs/db/ImportPreProcess.kt | 77 +++++++++++-------- 2 files changed, 48 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt index 722435c5..2fed3f0b 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -325,8 +325,7 @@ class ImportOMDBHelper @AssistedInject constructor( } DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code.toInt() -> { - var boundaryType = - renderEntity.properties["boundaryType"] + var boundaryType = renderEntity.properties["boundaryType"] if (boundaryType != null) { when (boundaryType.toInt()) { 0, 1, 6, 8, 9 -> { @@ -521,8 +520,7 @@ class ImportOMDBHelper @AssistedInject constructor( } // 对renderEntity做预处理后再保存 - val resultEntity = - importConfig.transformProperties(renderEntity) + val resultEntity = importConfig.transformProperties(renderEntity) Log.d("ImportOMDBHelper", "解析===2预处理") if (resultEntity != null) { diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt index a5da8c22..f9364182 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -438,32 +438,42 @@ class ImportPreProcess { val shapeList = JSONArray(renderEntity.properties["shapeList"]) val boundaryType = renderEntity.properties["boundaryType"] val listResult = mutableListOf() - 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) { - if (boundaryType != null) { - //只处理标线类型,App要求值渲染1、2、6、8 - if(boundaryType.toInt()==2){ - val markType = shape.optInt("markType",0) - when(markType){ + if (boundaryType != null) { + 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.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 @@ -475,9 +485,9 @@ class ImportPreProcess { renderEntityTemp.catchEnable = renderEntity.catchEnable var dis = -lateralOffset.toDouble() / 100000000 //最小值取10厘米,否正渲染太近无法显示 - if(dis>0&&dis<0.0000025){ + if (dis > 0 && dis < 0.0000025) { dis = 0.0000025 - }else if(dis>-0.0000025&&dis<0){ + } else if (dis > -0.0000025 && dis < 0) { dis = -0.0000025 } renderEntityTemp.geometry = GeometryTools.computeLine( @@ -487,19 +497,24 @@ class ImportPreProcess { listResult.add(renderEntityTemp) } } + } else { + isExistOffSet0 = true + //遍历赋值 + for (key in shape.keys()) { + renderEntity.properties[key] = shape[key].toString() + } } } - } else { - //遍历赋值 - for (key in shape.keys()) { - renderEntity.properties[key] = shape[key].toString() - } + } + //如果不存在偏移的数据时,数据本身不渲染同时也不进行捕捉 + if (!isExistOffSet0) { + renderEntity.catchEnable = 0 + } + if (listResult.size > 0) { + insertData(listResult) } } } - if (listResult.size > 0) { - insertData(listResult) - } } }