From 0bacea8259c2ecf0d14f2c213b18c2ea67334bac Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Tue, 19 Sep 2023 16:19:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A4=E9=80=9A=E6=A0=87=E7=89=8C2D?= =?UTF-8?q?=E5=8C=96=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/omdb_config.json | 8 +----- .../com/navinfo/omqs/db/ImportPreProcess.kt | 28 ++++++++++++++++++- .../src/main/assets/editormarker.xml | 10 +++---- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index cad8c316..ed45859f 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -222,13 +222,7 @@ "k": "geometry", "v": "~", "klib": "geometry", - "vlib": "obtainCenterPoint()" - }, - { - "k": "geometry", - "v": "~", - "klib": "geometry", - "vlib": "generateDirectReferenceLine('', 0.2)" + "vlib": "obtainTrafficSignCenterPoint()" } ] }, 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 be66945f..9dc13333 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -819,10 +819,36 @@ class ImportPreProcess { /** * 获取当前数据的中心点坐标 * */ - fun obtainCenterPoint(renderEntity: RenderEntity) { + fun obtainTrafficSignCenterPoint(renderEntity: RenderEntity) { // 获取中心坐标点,将中心坐标作为数据的新的geometry位置 val centerPoint = renderEntity.wkt?.centroid // 根据heading方向自动生成新的Geometry + var radian = 0.0 + val pointStart = Coordinate(centerPoint!!.x, centerPoint.y) + var angle = + if (renderEntity?.properties?.get("heading") == null) 0.0 else renderEntity?.properties?.get( + "heading" + )?.toDouble()!! + // angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角 + angle = ((450 - angle) % 360) + radian = Math.toRadians(angle) + // 计算偏移距离 + var dx: Double = GeometryTools.convertDistanceToDegree( + defaultTranslateDistance, + centerPoint.y + ) * Math.cos(radian) + var dy: Double = GeometryTools.convertDistanceToDegree( + defaultTranslateDistance, + centerPoint.y + ) * Math.sin(radian) + val listResult = mutableListOf() + + val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z) + renderEntity.geometry = + WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd))) + + val code = renderEntity.properties["signType"] + renderEntity.properties["src"] = "assets:omdb/appendix/1105_${code}_0.svg" } } \ No newline at end of file diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index ac5a3bf4..ba0119c7 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1566,12 +1566,10 @@ - - - - - - + + +