diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index 4e325a3d..48c0b553 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -498,11 +498,6 @@ "vlib": "generateAddWidthLine()" } ] - }, - "5002":{ - "table": "OMDB_AREA", - "code": 5002, - "name": "面测试" } } }, diff --git a/app/src/main/java/com/navinfo/omqs/db/Code2NameMap.kt b/app/src/main/java/com/navinfo/omqs/db/Code2NameMap.kt index 40a09740..1f0c3b32 100644 --- a/app/src/main/java/com/navinfo/omqs/db/Code2NameMap.kt +++ b/app/src/main/java/com/navinfo/omqs/db/Code2NameMap.kt @@ -33,7 +33,7 @@ class Code2NameMap { 29 to "鸣笛", 30 to "年检", 31 to "尾气", - 32 to "交通灯", + 32 to "ETC", 33 to "专用", 34 to "标线", 35 to "违章", 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 15c5b7f8..c7b0cbdd 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -168,15 +168,16 @@ class ImportOMDBHelper @AssistedInject constructor( // 遍历解压后的文件,读取该数据返回 for (importConfig in importConfigList) { + val realm = Realm.getDefaultInstance() try { for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) { + realm.beginTransaction() val currentConfig = currentEntry.value val txtFile = unZipFiles.find { it.name == currentConfig.table } // 将listResult数据插入到Realm数据库中 - val realm = Realm.getDefaultInstance() - val listResult = mutableListOf() +// val listResult = mutableListOf() currentConfig?.let { val list = FileIOUtils.readFile2List(txtFile, "UTF-8") Log.d("ImportOMDBHelper", "开始解析:${txtFile?.name}") @@ -331,28 +332,28 @@ class ImportOMDBHelper @AssistedInject constructor( } } - //交限增加相同LinkIn与LinkOut过滤原则 - if (renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code) { - if (renderEntity.properties.containsKey("linkIn") && renderEntity.properties.containsKey( - "linkOut" - ) - ) { - var linkIn = renderEntity.properties["linkIn"] - var linkOut = renderEntity.properties["linkOut"] - if (linkIn != null && linkOut != null) { - var checkMsg = "$linkIn$linkOut" - if (resHashMap.containsKey(checkMsg)) { - Log.e( - "qj", - "${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据" - ) - continue - } else { - resHashMap.put(checkMsg, renderEntity) - } - } - } - } +// //交限增加相同LinkIn与LinkOut过滤原则 +// if (renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code) { +// if (renderEntity.properties.containsKey("linkIn") && renderEntity.properties.containsKey( +// "linkOut" +// ) +// ) { +// var linkIn = renderEntity.properties["linkIn"] +// var linkOut = renderEntity.properties["linkOut"] +// if (linkIn != null && linkOut != null) { +// var checkMsg = "$linkIn$linkOut" +// if (resHashMap.containsKey(checkMsg)) { +// Log.e( +// "qj", +// "${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据" +// ) +// continue +// } else { +// resHashMap.put(checkMsg, renderEntity) +// } +// } +// } +// } //遍历判断只显示与任务Link相关的任务数据 if (currentConfig.checkLinkId) { @@ -439,208 +440,202 @@ class ImportOMDBHelper @AssistedInject constructor( // 对renderEntity做预处理后再保存 - try { - val resultEntity = - importConfig.transformProperties(renderEntity) + val resultEntity = + importConfig.transformProperties(renderEntity) - if (resultEntity != null) { - if (currentConfig.catch) { - renderEntity.catchEnable = 0 + if (resultEntity != null) { + if (currentConfig.catch) { + renderEntity.catchEnable = 0 + } else { + renderEntity.catchEnable = 1 + } + + //对code编码需要特殊处理 存在多个属性值时,渲染优先级:SA>PA,存在多个属性值时,渲染优先级:FRONTAGE>MAIN_SIDE_A CCESS + if (renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code) { + + Log.e("qj", "道路属性===0") + + var type = renderEntity.properties["sa"] + + if (type != null && type == "1") { + renderEntity.code = + DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code + Log.e("qj", "道路属性===1") } else { - renderEntity.catchEnable = 1 - } - - //对code编码需要特殊处理 存在多个属性值时,渲染优先级:SA>PA,存在多个属性值时,渲染优先级:FRONTAGE>MAIN_SIDE_A CCESS - if (renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code) { - - Log.e("qj", "道路属性===0") - - var type = renderEntity.properties["sa"] - + type = renderEntity.properties["pa"] if (type != null && type == "1") { renderEntity.code = - DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code - Log.e("qj", "道路属性===1") + DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code + Log.e("qj", "道路属性===2") } else { - type = renderEntity.properties["pa"] + type = renderEntity.properties["frontage"] if (type != null && type == "1") { renderEntity.code = - DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code - Log.e("qj", "道路属性===2") + DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code + Log.e("qj", "道路属性===3") } else { - type = renderEntity.properties["frontage"] + type = + renderEntity.properties["mainSideAccess"] if (type != null && type == "1") { renderEntity.code = - DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code - Log.e("qj", "道路属性===3") + DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code + Log.e("qj", "道路属性===4") } else { - type = - renderEntity.properties["mainSideAccess"] - if (type != null && type == "1") { - renderEntity.code = - DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code - Log.e("qj", "道路属性===4") - } else { - renderEntity.enable = 0 - Log.e( - "qj", - "过滤不显示数据${renderEntity.table}" - ) - Log.e("qj", "道路属性===5") - continue - } + renderEntity.enable = 0 + Log.e( + "qj", + "过滤不显示数据${renderEntity.table}" + ) + Log.e("qj", "道路属性===5") + continue } } } - } else if (renderEntity.code == DataCodeEnum.OMDB_RAMP.code) { - /*匝道*/ - var formWay = renderEntity.properties["formOfWay"] - if (formWay != null) { - when (formWay) { - "93" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_1.code + } + } else if (renderEntity.code == DataCodeEnum.OMDB_RAMP.code) { + /*匝道*/ + var formWay = renderEntity.properties["formOfWay"] + if (formWay != null) { + when (formWay) { + "93" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_1.code - "98" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_2.code + "98" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_2.code - "99" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_3.code + "99" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_3.code - "100" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_4.code + "100" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_4.code - "102" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_5.code + "102" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_5.code - "103" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_6.code + "103" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_6.code - "104" -> renderEntity.code = - DataCodeEnum.OMDB_RAMP_7.code - } - } - } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code) { - /*道路形态1*/ - var formWay = renderEntity.properties["formOfWay"] - if (formWay != null) { - when (formWay) { - "35" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM1_1.code - - "37" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM1_2.code - - "38" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM1_3.code - } - } - } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code) { - Log.e( - "qj", - "道路形态2${renderEntity.properties["formOfWay"]}" - ) - /*道路形态2*/ - var formWay = renderEntity.properties["formOfWay"] - if (formWay != null) { - when (formWay) { - "10" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_1.code - - "11" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_2.code - - "17" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_3.code - - "18" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_4.code - - "20" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_5.code - - "22" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_6.code - - "36" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_7.code - - "52" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_8.code - - "53" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_9.code - - "54" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_10.code - - "60" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_11.code - - "84" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_12.code - - "85" -> renderEntity.code = - DataCodeEnum.OMDB_LINK_FORM2_13.code - } - } - } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name) {//特殊处理,因为code相同,使用表名判断 - //过滤不需要渲染的要素 - var formOfWay = renderEntity.properties["formOfWay"] - if (formOfWay != null && formOfWay == "30") { - renderEntity.enable = 2 - renderEntity.code = - DataCodeEnum.OMDB_NODE_FORM.code - } else { - Log.e( - "qj", - "过滤不显示数据${renderEntity.table}" - ) - continue - } - } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_PA.name) {//特殊处理,因为code相同,使用表名判断 - //过滤不需要渲染的要素 - var attributeType = - renderEntity.properties["attributeType"] - if (attributeType != null && attributeType == "30") { - renderEntity.enable = 2 - renderEntity.code = - DataCodeEnum.OMDB_NODE_PA.code - } else { - Log.e( - "qj", - "过滤不显示数据${renderEntity.table}" - ) - continue - } - } else if (renderEntity.code == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code) { - //特殊处理空数据,渲染原则使用 - var startTime = renderEntity.properties["startTime"] - if (startTime == null || startTime == "") { - renderEntity.properties["startTime"] = "null" + "104" -> renderEntity.code = + DataCodeEnum.OMDB_RAMP_7.code } } - listResult.add(renderEntity) + } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code) { + /*道路形态1*/ + var formWay = renderEntity.properties["formOfWay"] + if (formWay != null) { + when (formWay) { + "35" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM1_1.code + + "37" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM1_2.code + + "38" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM1_3.code + } + } + } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code) { + Log.e( + "qj", + "道路形态2${renderEntity.properties["formOfWay"]}" + ) + /*道路形态2*/ + var formWay = renderEntity.properties["formOfWay"] + if (formWay != null) { + when (formWay) { + "10" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_1.code + + "11" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_2.code + + "17" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_3.code + + "18" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_4.code + + "20" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_5.code + + "22" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_6.code + + "36" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_7.code + + "52" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_8.code + + "53" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_9.code + + "54" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_10.code + + "60" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_11.code + + "84" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_12.code + + "85" -> renderEntity.code = + DataCodeEnum.OMDB_LINK_FORM2_13.code + } + } + } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name) {//特殊处理,因为code相同,使用表名判断 + //过滤不需要渲染的要素 + var formOfWay = renderEntity.properties["formOfWay"] + if (formOfWay != null && formOfWay == "30") { + renderEntity.enable = 2 + renderEntity.code = + DataCodeEnum.OMDB_NODE_FORM.code + } else { + Log.e( + "qj", + "过滤不显示数据${renderEntity.table}" + ) + continue + } + } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_PA.name) {//特殊处理,因为code相同,使用表名判断 + //过滤不需要渲染的要素 + var attributeType = + renderEntity.properties["attributeType"] + if (attributeType != null && attributeType == "30") { + renderEntity.enable = 2 + renderEntity.code = + DataCodeEnum.OMDB_NODE_PA.code + } else { + Log.e( + "qj", + "过滤不显示数据${renderEntity.table}" + ) + continue + } + } else if (renderEntity.code == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code) { + //特殊处理空数据,渲染原则使用 + var startTime = renderEntity.properties["startTime"] + if (startTime == null || startTime == "") { + renderEntity.properties["startTime"] = "null" + } } - }catch ( e:Exception){ - +// listResult.add(renderEntity) + realm.insert(renderEntity) } - } } } +// // 如果当前解析的是OMDB_RD_LINK数据,将其缓存在预处理类中,以便后续处理其他要素时使用 +// if (currentConfig.table == "OMDB_RD_LINK") { +// importConfig.preProcess.cacheRdLink = +// listResult.associateBy { it.properties["linkPid"] } +// } + realm.commitTransaction() // 1个文件发送一次flow流 emit("${++processIndex}/${tableNum}") - realm.beginTransaction() - realm.insert(listResult) - realm.commitTransaction() - realm.close() - // 如果当前解析的是OMDB_RD_LINK数据,将其缓存在预处理类中,以便后续处理其他要素时使用 - if (currentConfig.table == "OMDB_RD_LINK") { - importConfig.preProcess.cacheRdLink = - listResult.associateBy { it.properties["linkPid"] } - } } } catch (e: Exception) { + realm.cancelTransaction() throw e } } 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 173cec11..55e990e1 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -20,23 +20,23 @@ class ImportPreProcess { val defaultTranslateDistance = 3.0 val testFlag:Boolean = false fun checkCircleRoad(renderEntity: RenderEntity): Boolean { - val linkInId = renderEntity.properties["linkIn"] - val linkOutId = renderEntity.properties["linkOut"] - // 根据linkIn和linkOut获取对应的link数据 - val linkInEntity = cacheRdLink[linkInId] - val linkOutEntity = cacheRdLink[linkOutId] - Log.d( - "checkCircleRoad", - "LinkInEntity: ${linkInId}- ${linkInEntity?.properties?.get("snodePid")},LinkOutEntity: ${linkOutId}- ${ - linkOutEntity?.properties?.get("enodePid") - }" - ) - // 查询linkIn的sNode和linkOut的eNode是否相同,如果相同,认为数据是环形路口,返回false - if (linkInEntity != null && linkOutEntity != null) { - if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"]) { - return false - } - } +// val linkInId = renderEntity.properties["linkIn"] +// val linkOutId = renderEntity.properties["linkOut"] +// // 根据linkIn和linkOut获取对应的link数据 +// val linkInEntity = cacheRdLink[linkInId] +// val linkOutEntity = cacheRdLink[linkOutId] +// Log.d( +// "checkCircleRoad", +// "LinkInEntity: ${linkInId}- ${linkInEntity?.properties?.get("snodePid")},LinkOutEntity: ${linkOutId}- ${ +// linkOutEntity?.properties?.get("enodePid") +// }" +// ) +// // 查询linkIn的sNode和linkOut的eNode是否相同,如果相同,认为数据是环形路口,返回false +// if (linkInEntity != null && linkOutEntity != null) { +// if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"]) { +// return false +// } +// } return true } @@ -58,7 +58,7 @@ class ImportPreProcess { )!=null) { var angle = renderEntity?.properties?.get("angle")?.toDouble()!! // angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角 - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } else { var isReverse = false // 是否为逆向 @@ -135,7 +135,7 @@ class ImportPreProcess { // angle += 180 // } // angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角 - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) { var coordinates = geometry.coordinates @@ -309,7 +309,7 @@ class ImportPreProcess { "angle" )?.toDouble()!! // angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角 - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) { var coordinates = geometry.coordinates @@ -333,7 +333,7 @@ class ImportPreProcess { } } else renderEntity?.properties?.get("angle")?.toDouble()!! - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } @@ -460,9 +460,10 @@ class ImportPreProcess { referenceEntity.properties["currentDirect"] = laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_") referenceEntity.properties["currentType"] = - laneInfoTypeArray[i].toString().split(",").distinct().joinToString("_") + laneInfoTypeArray[i].toString() + val type = if (referenceEntity.properties["currentType"]=="0") "normal" else if (referenceEntity.properties["currentType"]=="1") "extend" else "bus" referenceEntity.properties["symbol"] = - "assets:omdb/4601/bus/1301_" + referenceEntity.properties["currentDirect"] + ".svg" + "assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg" Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString()) Realm.getDefaultInstance().insert(referenceEntity) } @@ -696,7 +697,7 @@ class ImportPreProcess { "angle" )?.toDouble()!! // angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角 - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) { var coordinates = geometry.coordinates @@ -717,7 +718,7 @@ class ImportPreProcess { } } else renderEntity?.properties?.get("angle")?.toDouble()!! - angle = (450 - angle) % 360 + angle = -((450 - angle) % 360) radian = Math.toRadians(angle) } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt index 58c38c44..90fa5f37 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt @@ -129,7 +129,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit? // 定位到指定位置 niMapController.mMapView.vtmMap.animator() // .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 )) - .animateTo(GeoPoint( 40.50755634913162,115.80235967728436 )) + .animateTo(GeoPoint(40.51850916836801,115.78801387178642)) } R.id.personal_center_menu_open_all_layer -> { MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS) diff --git a/collect-library/resources/rendertheme.xsd b/collect-library/resources/rendertheme.xsd index 9f23ffe0..656b3da1 100644 --- a/collect-library/resources/rendertheme.xsd +++ b/collect-library/resources/rendertheme.xsd @@ -257,7 +257,7 @@ - + diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 576ebaf2..09fda163 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1548,404 +1548,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2299,8 +1903,8 @@ + src="assets:omdb/icon_arrow_right.svg" symbol-height="56" + symbol-width="56"> diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/cluster/ClusterMarkerRenderer.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/cluster/ClusterMarkerRenderer.kt index f9943757..c1e05e98 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/cluster/ClusterMarkerRenderer.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/cluster/ClusterMarkerRenderer.kt @@ -317,7 +317,7 @@ open class ClusterMarkerRenderer : MarkerRenderer { // this item will act as a cluster, just use a proper bitmap // depending on cluster size, instead of its marker val bitmap = getClusterBitmap(it.clusterSize + 1) - s.set(it.x, it.y, bitmap, true, false, 0f) + s.set(it.x, it.y, bitmap, true, false, 0f, 0f) s.offset = PointF(0.5f, 0.5f) s.billboard = true // could be a parameter } else { @@ -325,7 +325,7 @@ open class ClusterMarkerRenderer : MarkerRenderer { var symbol: MarkerSymbol? = it.item.marker if (symbol == null) symbol = mDefaultMarker symbol?.let { symbol -> - s.set(it.x, it.y, symbol.bitmap, true, false, 0f) + s.set(it.x, it.y, symbol.bitmap, true, false, 0f, 0f) s.offset = symbol.hotspot s.billboard = symbol.isBillboard } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt index ff17f5f2..ae09bfd5 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt @@ -15,6 +15,7 @@ import okhttp3.Cache import okhttp3.OkHttpClient import org.oscim.android.theme.AssetsRenderTheme import org.oscim.layers.GroupLayer +import org.oscim.layers.TileGridLayer import org.oscim.layers.tile.buildings.BuildingLayer import org.oscim.layers.tile.vector.VectorTileLayer import org.oscim.layers.tile.vector.labeling.LabelLayer @@ -55,6 +56,7 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP private lateinit var omdbReferenceTileLayer: VectorTileLayer private lateinit var omdbLabelLayer: LabelLayer private lateinit var omdbReferenceLabelLayer: LabelLayer + private lateinit var tileGridLayer: TileGridLayer // 用来显示tile号的layer private val omdbTileSource by lazy { OMDBTileSource() } private val omdbReferenceTileSource by lazy { OMDBReferenceTileSource() } @@ -141,6 +143,9 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP // 向两个Vector图层增加hook钩子,加载数据前对style或数据进行二次处理 omdbVectorTileLayer.addHook(navinfoTileThemeHook) omdbReferenceTileLayer.addHook(navinfoTileThemeHook) + // 添加显示grid的tile号的图层 + tileGridLayer = TileGridLayer(mMapView.vtmMap) + addLayer(tileGridLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER) } private fun resetOMDBVectorTileLayer() {