diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index 95339a0a..e7960171 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -101,7 +101,7 @@ "code": 2017, "name": "道路施工", "catch": true, - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 15, "zoomMax": 17 }, @@ -166,11 +166,38 @@ "zoomMin": 15, "zoomMax": 17 }, + "2070": { + "table": "OMDB_LINK_SEPARATION", + "code": 2070, + "name": "设施分离", + "zoomMin": 18, + "zoomMax": 20, + "filterData": true, + "catch": true + }, + "2071": { + "table": "OMDB_LINK_MEDIAN", + "code": 2071, + "name": "中央隔离带", + "zoomMin": 18, + "zoomMax": 20, + "isDependOnOtherTable": true, + "filterData": true, + "catch": true, + "transformer": [ + { + "k": "geometry", + "v": "~", + "klib": "geometry", + "vlib": "generateLinkMedianToPolygon()" + } + ] + }, "2083": { "table": "OMDB_RDBOUND_BOUNDARYTYPE", "code": 2083, "name": "道路边界类型", - "checkLinkId": false, + "checkLinkId": true, "filterData": true, "zoomMin": 18, "zoomMax": 20, @@ -263,7 +290,7 @@ "zoomMax": 20, "catch": true, "filterData": false, - "checkLinkId": false, + "checkLinkId": true, "transformer": [ { "k": "geometry", @@ -280,7 +307,7 @@ "zoomMin": 15, "zoomMax": 20, "catch": true, - "checkLinkId": false, + "checkLinkId": true, "transformer": [ { "k": "geometry", @@ -297,14 +324,14 @@ "zoomMin": 18, "zoomMax": 20, "catch": true, - "checkLinkId": false, + "checkLinkId": true, "transformer": [] }, "3003": { "table": "OMDB_OBJECT_SYMBOL", "code": 3003, "name": "符号", - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20, "catch": true, @@ -314,7 +341,7 @@ "table": "OMDB_OBJECT_ARROW", "code": 3004, "name": "箭头", - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20, "catch": true, @@ -367,7 +394,7 @@ "code": 3012, "name": "导流区", "catch": true, - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20 }, @@ -376,7 +403,7 @@ "code": 3014, "name": "人行横道", "catch": true, - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20 }, @@ -384,7 +411,7 @@ "table": "OMDB_OBJECT_STOPLOCATION", "code": 3016, "name": "停止位置", - "checkLinkId": false, + "checkLinkId": true, "filterData": true, "zoomMin": 18, "catch": true, @@ -395,7 +422,7 @@ "code": 3027, "name": "路口内交通岛", "catch": true, - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20 }, @@ -630,7 +657,7 @@ "zoomMax": 20, "filterData": true, "catch": true, - "checkLinkId": false, + "checkLinkId": true, "transformer": [ { "k": "geometry", @@ -695,7 +722,7 @@ "name": "车道中心线", "catch": false, "isDependOnOtherTable": false, - "checkLinkId": false, + "checkLinkId": true, "zoomMin": 18, "zoomMax": 20, "transformer": [ 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 cce06421..6537bf27 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -194,7 +194,8 @@ class ImportPreProcess { val coord = Coordinate(point.getX() - dx, point.getY() - dy) // 将这个点记录在数据中 - val geometryTranslate: Geometry = GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y)) + val geometryTranslate: Geometry = + GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y)) renderEntity.geometry = geometryTranslate.toString() } @@ -237,7 +238,8 @@ class ImportPreProcess { GeometryTools.createLineString(arrayOf(pointStart, pointEnd)).toString() startEndReference.properties["qi_table"] = renderEntity.table startEndReference.properties["type"] = "s_2_e" - startEndReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(startEndReference.properties)) + startEndReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(startEndReference.properties)) renderEntity.referenceEntitys.add(startEndReference) } @@ -281,7 +283,8 @@ class ImportPreProcess { startReference.geometry = GeometryTools.createGeometry(GeoPoint(pointStart.y, pointStart.x)).toString() startReference.properties["qi_table"] = renderEntity.table - startReference.properties["type"] = "s${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000)>0) "_dec" else "_acc"}" + startReference.properties["type"] = + "s${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000) > 0) "_dec" else "_acc"}" startReference.properties["geometry"] = startReference.geometry listResult.add(startReference) @@ -299,7 +302,8 @@ class ImportPreProcess { endReference.geometry = GeometryTools.createGeometry(GeoPoint(pointEnd.y, pointEnd.x)).toString() endReference.properties["qi_table"] = renderEntity.table - endReference.properties["type"] = "e${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000)>0) "_dec" else "_acc"}" + endReference.properties["type"] = + "e${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000) > 0) "_dec" else "_acc"}" endReference.properties["geometry"] = endReference.geometry renderEntity.referenceEntitys.add(endReference) //listResult.add(endReference) @@ -351,7 +355,8 @@ class ImportPreProcess { Log.e("qj", "generateS2EReferencePoint===${startReference.geometry}") startReference.properties["geometry"] = startReference.geometry - startReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(startReference.properties)) + startReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(startReference.properties)) listResult.add(startReference) Log.e("qj", "generateS2EReferencePoint===1") @@ -385,7 +390,8 @@ class ImportPreProcess { Log.e("qj", "generateS2EReferencePoint===e_2_p${renderEntity.name}") } endReference.properties["geometry"] = endReference.geometry - endReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(endReference.properties)) + endReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(endReference.properties)) renderEntity.referenceEntitys.add(endReference) Log.e("qj", "generateS2EReferencePoint===4") } @@ -482,7 +488,8 @@ class ImportPreProcess { WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd))) angleReference.properties["qi_table"] = renderEntity.table angleReference.properties["type"] = "angle" - angleReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties)) + angleReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties)) renderEntity.referenceEntitys.add(angleReference) } Log.e("qj", "generateDirectReferenceLine===1") @@ -598,21 +605,21 @@ class ImportPreProcess { if (listResult.size > 0) { insertData(listResult) } - }else if(boundaryType.toInt() == 9){//根据线型平分为点数据,用于渲染3D标 + } else if (boundaryType.toInt() == 9) {//根据线型平分为点数据,用于渲染3D标 dengfenLineString(renderEntity) } } } } - fun dengfenLineString(renderEntity: RenderEntity){ - if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code||renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){ + fun dengfenLineString(renderEntity: RenderEntity) { + if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code || renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code) { val boundaryType = renderEntity.properties["boundaryType"] if (boundaryType != null) { - if(boundaryType.toInt()==9){ - Log.e("qj","杆状物转换开始") - val geopointList = GeometryTools.getLineToDengGeoPints(renderEntity.wkt,5.0) - geopointList.forEach{ + if (boundaryType.toInt() == 9) { + Log.e("qj", "杆状物转换开始") + val geopointList = GeometryTools.getLineToDengGeoPints(renderEntity.wkt, 5.0) + geopointList.forEach { val referenceEntity = ReferenceEntity() referenceEntity.name = "${renderEntity.name}线转点坐标" referenceEntity.table = renderEntity.table @@ -625,10 +632,11 @@ class ImportPreProcess { referenceEntity.zoomMax = renderEntity.zoomMax referenceEntity.taskId = renderEntity.taskId referenceEntity.enable = renderEntity.enable - referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties)) + referenceEntity.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties)) renderEntity.referenceEntitys.add(referenceEntity) } - Log.e("qj","杆状物转换结束") + Log.e("qj", "杆状物转换结束") } } } @@ -673,7 +681,8 @@ class ImportPreProcess { referenceEntity.properties["symbol"] = "assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg" Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString()) - referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties)) + referenceEntity.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties)) renderEntity.referenceEntitys.add(referenceEntity) Log.e("qj", "车信===插入车信箭头") } @@ -681,9 +690,10 @@ class ImportPreProcess { //将主表线转化为单个点,按点要素实现捕捉 if (Geometry.TYPENAME_LINESTRING == renderEntity.wkt?.geometryType) { var coordinates = renderEntity.wkt?.coordinates - if(coordinates!=null){ + if (coordinates != null) { val p1: Coordinate = coordinates[0] - renderEntity.geometry = GeometryTools.createGeometry(GeoPoint(p1.y,p1.x)).toString() + renderEntity.geometry = + GeometryTools.createGeometry(GeoPoint(p1.y, p1.x)).toString() } } @@ -775,30 +785,79 @@ class ImportPreProcess { * 生成车道中心线面宽度 * */ fun generateAddWidthLine(renderEntity: RenderEntity) { - var newTime = 0L // 添加车道中心面渲染原则,根据车道宽度进行渲染 val angleReference = ReferenceEntity() - // angleReference.renderEntityId = renderEntity.id angleReference.name = "${renderEntity.name}车道中线面" angleReference.table = renderEntity.table angleReference.code = renderEntity.code -// Log.e("jingo", "几何转换开始") - //angleReference.geometry = renderEntity.geometry - angleReference.geometry = GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry) -// Log.e("jingo", "几何转换结束") + angleReference.geometry = + GeometryTools.computeLine(0.000035, 0.000035, renderEntity.geometry) angleReference.properties["qi_table"] = renderEntity.table angleReference.properties["widthProperties"] = "3" angleReference.zoomMin = renderEntity.zoomMin angleReference.zoomMax = renderEntity.zoomMax angleReference.taskId = renderEntity.taskId angleReference.enable = renderEntity.enable - val listResult = mutableListOf() - angleReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties)) + angleReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties)) renderEntity.referenceEntitys.add(angleReference) - //listResult.add(angleReference) - //insertData(listResult) } + /** + * 中央隔离带根据线几何生成面 + * */ + fun generateLinkMedianToPolygon(renderEntity: RenderEntity) { + if (renderEntity.code == DataCodeEnum.OMDB_LINK_MEDIAN.code) { + if (renderEntity.properties.containsKey("side") && renderEntity.properties.containsKey("median") && renderEntity.properties.containsKey( + "medianSurface" + ) && renderEntity.properties.containsKey("medianWidth")&& renderEntity.properties.containsKey("direct") + ) { + //基于通行方向左右 0 左侧 1 右侧 (双方向不制作) + val side = renderEntity.properties["side"] + //1有中央隔离带,不与任何护栏共存 2有中央隔离带,与非固定护栏共存 + val median = renderEntity.properties["median"]?.toInt() + //0 未铺设 1 铺设 2 混合 + var medianSurface = renderEntity.properties["medianSurface"]?.toInt() + if(median==2){ + medianSurface = 3 + medianSurface!! + } + //宽度 + val medianWidth = renderEntity.properties["medianWidth"]?.toDouble() + // 添加车道中心面渲染原则,根据车道宽度进行渲染 + val angleReference = ReferenceEntity() + //方向 0\1\2顺方向 3逆方向 + when(renderEntity.properties["direct"]?.toInt()){ + 0,1,2->{ + if (medianWidth != null) { + angleReference.geometry = + GeometryTools.computeLine(medianWidth/100000000, 0.0, renderEntity.geometry) + Log.e("qj","width==${medianWidth/100000000}") + } + } + 3->{ + if (medianWidth != null) { + angleReference.geometry = + GeometryTools.computeLine(0.0, medianWidth/100000000, renderEntity.geometry) + Log.e("qj","width==${medianWidth/100000000}") + } + } + } + angleReference.name = "${renderEntity.name}面" + angleReference.table = renderEntity.table + angleReference.code = renderEntity.code + angleReference.properties["qi_table"] = renderEntity.table + angleReference.properties["medianSurface"] = medianSurface.toString() + angleReference.zoomMin = renderEntity.zoomMin + angleReference.zoomMax = renderEntity.zoomMax + angleReference.taskId = renderEntity.taskId + angleReference.enable = renderEntity.enable + angleReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(angleReference.properties)) + renderEntity.referenceEntitys.add(angleReference) + } + + } + } /** * 生成默认路口数据的参考数据 @@ -825,7 +884,8 @@ class ImportPreProcess { GeometryTools.createGeometry(nodeJSONObject["geometry"].toString()).toString() intersectionReference.properties["qi_table"] = renderEntity.table intersectionReference.properties["type"] = "node" - intersectionReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(intersectionReference.properties)) + intersectionReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(intersectionReference.properties)) renderEntity.referenceEntitys.add(intersectionReference) //listResult.add(intersectionReference) } @@ -838,13 +898,13 @@ class ImportPreProcess { * */ fun sortGeometry(renderEntity: RenderEntity) { // 路口数据的其他点位,是保存在nodeList对应的数组下 -/* if (renderEntity.properties.containsKey("linkPid")) { - val linkList = renderEntity.properties["linkPid"]?.split(",") - //几何较少时需要判断是否要计算判断长短边 - if(linkList!=null&&linkList.size<3){ + /* if (renderEntity.properties.containsKey("linkPid")) { + val linkList = renderEntity.properties["linkPid"]?.split(",") + //几何较少时需要判断是否要计算判断长短边 + if(linkList!=null&&linkList.size<3){ - } - }*/ + } + }*/ } @@ -1011,7 +1071,8 @@ class ImportPreProcess { dynamicSrcReference.properties["type"] = "dynamicSrc" val code = renderEntity.properties[codeName] dynamicSrcReference.properties["src"] = "${prefix}${code}${suffix}" - dynamicSrcReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(dynamicSrcReference.properties)) + dynamicSrcReference.propertiesDb = + DeflaterUtil.zipString(JSON.toJSONString(dynamicSrcReference.properties)) renderEntity.referenceEntitys.add(dynamicSrcReference) //listResult.add(dynamicSrcReference) } @@ -1120,24 +1181,25 @@ class ImportPreProcess { fun generateLaneAccessType(renderEntity: RenderEntity): Boolean { if (renderEntity.properties.containsKey("accessCharacteristic")) { // 解析accessCharacteristic,判断是否存在指定属性 - val accessCharacteristic = renderEntity.properties["accessCharacteristic"].toString().toInt() + val accessCharacteristic = + renderEntity.properties["accessCharacteristic"].toString().toInt() var str = "" - if (accessCharacteristic.and(4)>0) { + if (accessCharacteristic.and(4) > 0) { str += "公" } - if (accessCharacteristic.and(8)>0) { + if (accessCharacteristic.and(8) > 0) { if (str.isNotEmpty()) { str += "|" } str += "多" } - if (accessCharacteristic.and(64)>0) { + if (accessCharacteristic.and(64) > 0) { if (str.isNotEmpty()) { str += "|" } str += "行" } - if (accessCharacteristic.and(128)>0) { + if (accessCharacteristic.and(128) > 0) { if (str.isNotEmpty()) { str += "|" } @@ -1155,8 +1217,9 @@ class ImportPreProcess { * 生成车道点限速的名称 * */ fun obtainLaneSpeedLimitName(renderEntity: RenderEntity) { - if (renderEntity.properties.containsKey("maxSpeed")&&renderEntity.properties.containsKey("minSpeed")) { - renderEntity.properties["ref"] = "${renderEntity.properties["maxSpeed"]}|${renderEntity.properties["minSpeed"]}" + if (renderEntity.properties.containsKey("maxSpeed") && renderEntity.properties.containsKey("minSpeed")) { + renderEntity.properties["ref"] = + "${renderEntity.properties["maxSpeed"]}|${renderEntity.properties["minSpeed"]}" } } @@ -1164,7 +1227,7 @@ class ImportPreProcess { * 生成立交的辅助图层数据 * */ fun obtainZLevelReference(renderEntity: RenderEntity) { - if(renderEntity!=null&&renderEntity.properties.containsKey("zlevelList")) { + if (renderEntity != null && renderEntity.properties.containsKey("zlevelList")) { // 获取ZLevelList数据 val zLevelList = JSONArray(renderEntity.properties["zlevelList"]) for (i in 0 until zLevelList.length()) { @@ -1173,7 +1236,8 @@ class ImportPreProcess { val startEnd = zLevelObject.optInt("startEnd", 0) val zLevel = zLevelObject.optInt("zlevel", 0) val shpSeqNum = zLevelObject.optInt("shpSeqNum", 0) - val linkGeometry = GeometryTools.createGeometry(zLevelObject.optString("linkGeometry")) + val linkGeometry = + GeometryTools.createGeometry(zLevelObject.optString("linkGeometry")) val coordinates = linkGeometry!!.coordinates val referenceEntityList = mutableListOf() // 判断当前数据的startEnd,如果是0则向前和向后都绘制线,如果是1(起点)则只绘制前两个点组成的线,如果是2(终点)则只绘制后两个点组成的线 @@ -1182,35 +1246,47 @@ class ImportPreProcess { zLevelReference.properties["type"] = "zlevelLine" // zLevelReference.properties["name"] = zLevel.toString() // 根据shpSeqNum获取对应的点位 - if (shpSeqNum < coordinates.size-1) { + if (shpSeqNum < coordinates.size - 1) { val currentCoordinate = coordinates[shpSeqNum] - var nextCoordinate = coordinates[shpSeqNum+1] + var nextCoordinate = coordinates[shpSeqNum + 1] // 计算两个点的距离,如果小于指定阈值,程序按照方向计算延长线 // if (GeometryTools.getDistance(currentCoordinate.y, currentCoordinate.x, nextCoordinate.y, nextCoordinate.x) < 3.0) { - // 获取当前点到下一个点的线方向 - val angle = Angle.angle(currentCoordinate, nextCoordinate) - // 计算偏移距离 - val dx: Double = GeometryTools.convertDistanceToDegree( - 3.0, - currentCoordinate.y!! - ) * Math.cos(angle) - val dy: Double = GeometryTools.convertDistanceToDegree( - 3.0, - currentCoordinate.y!! - ) * Math.sin(angle) + // 获取当前点到下一个点的线方向 + val angle = Angle.angle(currentCoordinate, nextCoordinate) + // 计算偏移距离 + val dx: Double = GeometryTools.convertDistanceToDegree( + 3.0, + currentCoordinate.y!! + ) * Math.cos(angle) + val dy: Double = GeometryTools.convertDistanceToDegree( + 3.0, + currentCoordinate.y!! + ) * Math.sin(angle) - // 计算偏移后的点 - nextCoordinate = - Coordinate(currentCoordinate.getX() + dx, currentCoordinate.getY() + dy) + // 计算偏移后的点 + nextCoordinate = + Coordinate(currentCoordinate.getX() + dx, currentCoordinate.getY() + dy) // } - zLevelReference.geometry = GeometryTools.createLineString(arrayListOf(GeoPoint(currentCoordinate.y, currentCoordinate.x), GeoPoint(nextCoordinate.y, nextCoordinate.x))).toString() + zLevelReference.geometry = GeometryTools.createLineString( + arrayListOf( + GeoPoint( + currentCoordinate.y, + currentCoordinate.x + ), GeoPoint(nextCoordinate.y, nextCoordinate.x) + ) + ).toString() referenceEntityList.add(zLevelReference) val zLevelNameReference = createZLevelReference(renderEntity) zLevelNameReference.properties["type"] = "zlevelName" zLevelNameReference.properties["name"] = zLevel.toString() - zLevelNameReference.geometry = GeometryTools.createGeometry(GeoPoint(nextCoordinate.y, nextCoordinate.x)).toString() + zLevelNameReference.geometry = GeometryTools.createGeometry( + GeoPoint( + nextCoordinate.y, + nextCoordinate.x + ) + ).toString() referenceEntityList.add(zLevelNameReference) } } @@ -1220,34 +1296,43 @@ class ImportPreProcess { zLevelReference.properties["type"] = "zlevelLine" // zLevelReference.properties["name"] = zLevel.toString() // 根据shpSeqNum获取对应的点位 - if (shpSeqNum < coordinates.size&&shpSeqNum>0) { + if (shpSeqNum < coordinates.size && shpSeqNum > 0) { val currentCoordinate = coordinates[shpSeqNum] - var preCoordinate = coordinates[shpSeqNum-1] + var preCoordinate = coordinates[shpSeqNum - 1] // 计算两个点的距离,如果小于指定阈值,程序按照方向计算延长线 // if (GeometryTools.getDistance(currentCoordinate.y, currentCoordinate.x, preCoordinate.y, preCoordinate.x) < 3.0) { - // 获取当前点到下一个点的线方向 - val angle = Angle.angle(currentCoordinate, preCoordinate) - // 计算偏移距离 - val dx: Double = GeometryTools.convertDistanceToDegree( - 3.0, - currentCoordinate.y!! - ) * Math.cos(angle) - val dy: Double = GeometryTools.convertDistanceToDegree( - 3.0, - currentCoordinate.y!! - ) * Math.sin(angle) + // 获取当前点到下一个点的线方向 + val angle = Angle.angle(currentCoordinate, preCoordinate) + // 计算偏移距离 + val dx: Double = GeometryTools.convertDistanceToDegree( + 3.0, + currentCoordinate.y!! + ) * Math.cos(angle) + val dy: Double = GeometryTools.convertDistanceToDegree( + 3.0, + currentCoordinate.y!! + ) * Math.sin(angle) - // 计算偏移后的点 - preCoordinate = - Coordinate(currentCoordinate.getX() + dx, currentCoordinate.getY() + dy) + // 计算偏移后的点 + preCoordinate = + Coordinate(currentCoordinate.getX() + dx, currentCoordinate.getY() + dy) // } - zLevelReference.geometry = GeometryTools.createLineString(arrayListOf(GeoPoint(currentCoordinate.y, currentCoordinate.x), GeoPoint(preCoordinate.y, preCoordinate.x))).toString() + zLevelReference.geometry = GeometryTools.createLineString( + arrayListOf( + GeoPoint( + currentCoordinate.y, + currentCoordinate.x + ), GeoPoint(preCoordinate.y, preCoordinate.x) + ) + ).toString() referenceEntityList.add(zLevelReference) val zLevelNameReference = createZLevelReference(renderEntity) zLevelNameReference.properties["type"] = "zlevelName" zLevelNameReference.properties["name"] = zLevel.toString() - zLevelNameReference.geometry = GeometryTools.createGeometry(GeoPoint(preCoordinate.y, preCoordinate.x)).toString() + zLevelNameReference.geometry = + GeometryTools.createGeometry(GeoPoint(preCoordinate.y, preCoordinate.x)) + .toString() referenceEntityList.add(zLevelNameReference) } } diff --git a/app/src/main/res/menu/personal_center_menu.xml b/app/src/main/res/menu/personal_center_menu.xml index cc526bbd..d7252870 100644 --- a/app/src/main/res/menu/personal_center_menu.xml +++ b/app/src/main/res/menu/personal_center_menu.xml @@ -64,7 +64,7 @@ + android:title="版本:24QE1_V1.2.1_20231124_A" /> diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 5ef8996a..c5b33766 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1616,12 +1616,34 @@ + + + + + + + + + + + + + + + + + + + + + + - + @@ -1629,7 +1651,7 @@ - + @@ -1648,7 +1670,7 @@ - + @@ -1656,7 +1678,7 @@ - + @@ -1882,6 +1904,11 @@ + + + + + @@ -1919,7 +1946,7 @@ + src="assets:omdb/icon_arrow_right_bottom.svg" > @@ -1940,7 +1967,7 @@ + src="assets:omdb/icon_arrow_right_bottom.svg" > diff --git a/collect-library/src/main/assets/omdb/icon_2013_4.svg b/collect-library/src/main/assets/omdb/icon_2013_4.svg index 934f848e..bb0c9bfa 100644 --- a/collect-library/src/main/assets/omdb/icon_2013_4.svg +++ b/collect-library/src/main/assets/omdb/icon_2013_4.svg @@ -2,60 +2,95 @@ - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2013_5.svg b/collect-library/src/main/assets/omdb/icon_2013_5.svg new file mode 100644 index 00000000..f8babad6 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2013_5.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2070_0.svg b/collect-library/src/main/assets/omdb/icon_2070_0.svg new file mode 100644 index 00000000..8a03268f --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2070_0.svg @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2071_0.jpg b/collect-library/src/main/assets/omdb/icon_2071_0.jpg new file mode 100644 index 00000000..c1cdee0b Binary files /dev/null and b/collect-library/src/main/assets/omdb/icon_2071_0.jpg differ diff --git a/collect-library/src/main/assets/omdb/icon_2071_0.svg b/collect-library/src/main/assets/omdb/icon_2071_0.svg new file mode 100644 index 00000000..62b423df --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2071_0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2071_1.png b/collect-library/src/main/assets/omdb/icon_2071_1.png new file mode 100644 index 00000000..53b887f8 Binary files /dev/null and b/collect-library/src/main/assets/omdb/icon_2071_1.png differ diff --git a/collect-library/src/main/assets/omdb/icon_2071_1.svg b/collect-library/src/main/assets/omdb/icon_2071_1.svg new file mode 100644 index 00000000..6c162381 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2071_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2071_2.png b/collect-library/src/main/assets/omdb/icon_2071_2.png new file mode 100644 index 00000000..924fda38 Binary files /dev/null and b/collect-library/src/main/assets/omdb/icon_2071_2.png differ diff --git a/collect-library/src/main/assets/omdb/icon_2071_2.svg b/collect-library/src/main/assets/omdb/icon_2071_2.svg new file mode 100644 index 00000000..b428533e --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_2071_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4002_0.svg b/collect-library/src/main/assets/omdb/icon_4002_0.svg index 4c7be369..8668a82b 100644 --- a/collect-library/src/main/assets/omdb/icon_4002_0.svg +++ b/collect-library/src/main/assets/omdb/icon_4002_0.svg @@ -1,33 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4002_1.svg b/collect-library/src/main/assets/omdb/icon_4002_1.svg index b7c66fc1..21bbcb9c 100644 --- a/collect-library/src/main/assets/omdb/icon_4002_1.svg +++ b/collect-library/src/main/assets/omdb/icon_4002_1.svg @@ -1,41 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4003_0.svg b/collect-library/src/main/assets/omdb/icon_4003_0.svg index 932d090d..a4b0b73b 100644 --- a/collect-library/src/main/assets/omdb/icon_4003_0.svg +++ b/collect-library/src/main/assets/omdb/icon_4003_0.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4003_1.svg b/collect-library/src/main/assets/omdb/icon_4003_1.svg index 14efe86d..656c30ea 100644 --- a/collect-library/src/main/assets/omdb/icon_4003_1.svg +++ b/collect-library/src/main/assets/omdb/icon_4003_1.svg @@ -1,47 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4004_0.svg b/collect-library/src/main/assets/omdb/icon_4004_0.svg index ada8b8eb..6f7cd500 100644 --- a/collect-library/src/main/assets/omdb/icon_4004_0.svg +++ b/collect-library/src/main/assets/omdb/icon_4004_0.svg @@ -1,35 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_arrow_right_bottom.svg b/collect-library/src/main/assets/omdb/icon_arrow_right_bottom.svg new file mode 100644 index 00000000..6cb7a703 --- /dev/null +++ b/collect-library/src/main/assets/omdb/icon_arrow_right_bottom.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt index 4b834f83..95799a6c 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt @@ -35,6 +35,8 @@ public enum class DataCodeEnum(var tableName: String, var code: String) { OMDB_LANE_NUM("车道数", "2041"), OMDB_PHY_LANENUM("物理车道数", "2097"), OMDB_VIADUCT("高架", "2043"), + OMDB_LINK_SEPARATION("设施分离", "2070"), + OMDB_LINK_MEDIAN("中央隔离带", "2071"), OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_LANE_CONSTRUCTION("车道施工", "2090"), OMDB_LANE_TYPE_ACCESS("车道类型","2092"), diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java index 0db8f305..1e7c1472 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java @@ -91,7 +91,7 @@ public class OMDBDataDecoder extends TileDecoder { } }); //增加交通标牌聚合显示 - List list1 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.getCode(), list, 5.0); + List list1 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.getCode(), list, 3.0); if (list1 != null && list1.size() > 0) { Log.e("qj", "聚合交通标牌转换开始" + list.size()); list1.stream().iterator().forEachRemaining(new Consumer() { @@ -105,7 +105,7 @@ public class OMDBDataDecoder extends TileDecoder { Log.e("qj", "聚合交通标牌转换结束" + list1.size()); } //增加交通标牌聚合显示 - List list2 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFICLIGHT.getCode(), traffList, 5.0); + List list2 = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFICLIGHT.getCode(), traffList, 2.0); if (list2 != null && list2.size() > 0) { Log.e("qj", "聚合红绿灯转换开始" + traffList.size()); list2.stream().iterator().forEachRemaining(new Consumer() { diff --git a/vtm b/vtm index c046e788..024159af 160000 --- a/vtm +++ b/vtm @@ -1 +1 @@ -Subproject commit c046e788f5c739612a31c308639fca2de639669a +Subproject commit 024159afee2b9e438dd6c2a6419e034df287a8db