fix: 合并代码
This commit is contained in:
commit
60eed7d9ca
@ -21,6 +21,21 @@
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17
|
||||
},
|
||||
"2004": {
|
||||
"table": "OMDB_LINK_ATTRIBUTE",
|
||||
"code": 2004,
|
||||
"name": "道路属性",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 19,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateRoadText()"
|
||||
}
|
||||
]
|
||||
},
|
||||
"2008": {
|
||||
"table": "OMDB_RD_LINK_KIND",
|
||||
"code": 2008,
|
||||
@ -96,7 +111,7 @@
|
||||
"name": "全封闭"
|
||||
},
|
||||
"2037": {
|
||||
"table": "OMDB_FORM_OF_WAY",
|
||||
"table": "OMDB_TAMP",
|
||||
"code": 2037,
|
||||
"name": "匝道"
|
||||
},
|
||||
@ -139,14 +154,30 @@
|
||||
"name": "隧道",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 20,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateS2EReferencePoint()"
|
||||
}
|
||||
]
|
||||
"transformer2Code": ""
|
||||
},
|
||||
"2204":{
|
||||
"table": "OMDB_RoundAbout",
|
||||
"code": 2204,
|
||||
"name": "环岛",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17,
|
||||
"transformer2Code": ""
|
||||
},
|
||||
"2205":{
|
||||
"table": "OMDB_LINK_FORM1",
|
||||
"code": 2205,
|
||||
"name": "道路形态1",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17
|
||||
},
|
||||
"2206":{
|
||||
"table": "OMDB_LINK_FORM2",
|
||||
"code": 2206,
|
||||
"name": "道路形态2",
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17,
|
||||
"transformer2Code": ""
|
||||
},
|
||||
"4001": {
|
||||
"table": "OMDB_INTERSECTION",
|
||||
|
@ -11,6 +11,7 @@ import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.data.entity.TaskBean
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
import com.navinfo.omqs.db.deep.LinkList
|
||||
@ -167,7 +168,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
// 先查询这个mesh下有没有数据,如果有则跳过即可
|
||||
// val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst()
|
||||
val renderEntity = RenderEntity()
|
||||
renderEntity.code = map["qi_code"].toString().toInt()
|
||||
renderEntity.code = map["qi_code"].toString()
|
||||
renderEntity.name = map["qi_name"].toString()
|
||||
renderEntity.table = map["qi_table"].toString()
|
||||
renderEntity.taskId = task.id
|
||||
@ -208,7 +209,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
}else if(renderEntity.table == "OMDB_RESTRICTION" && renderEntity.properties.containsKey("linkIn")){
|
||||
}else if(renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code && renderEntity.properties.containsKey("linkIn")){
|
||||
|
||||
if (renderEntity.properties["linkIn"] != null) {
|
||||
|
||||
@ -225,7 +226,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(renderEntity.table == "OMDB_INTERSECTION" && renderEntity.properties.containsKey("linkList")){
|
||||
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){
|
||||
|
||||
if (renderEntity.properties["linkList"] != null) {
|
||||
|
||||
@ -263,6 +264,103 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
renderEntity.enable = 2
|
||||
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
|
||||
}
|
||||
|
||||
//道路属性code编码需要特殊处理 存在多个属性值时,渲染优先级:SA>PA,存在多个属性值时,渲染优先级:FRONTAGE>MAIN_SIDE_A CCESS
|
||||
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){
|
||||
|
||||
var type = renderEntity.properties["SA"]
|
||||
|
||||
if(type!=null&&type=="1"){
|
||||
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
|
||||
}else{
|
||||
type = renderEntity.properties["PA"]
|
||||
if(type!=null&&type=="1"){
|
||||
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
|
||||
} else{
|
||||
type = renderEntity.properties["FRONTAGE"]
|
||||
if(type!=null&&type=="1"){
|
||||
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
|
||||
}else{
|
||||
type = renderEntity.properties["MAIN_SIDE_ACCESS"]
|
||||
if(type!=null&&type=="1"){
|
||||
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
|
||||
}else{
|
||||
renderEntity.enable=0
|
||||
Log.e("qj","过滤不显示数据${renderEntity.table}")
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(renderEntity.code == DataCodeEnum.OMDB_RAMP.code){
|
||||
/*匝道*/
|
||||
var formWay = renderEntity.properties["FORM_OF_WAY"]
|
||||
if(formWay!=null){
|
||||
when (formWay) {
|
||||
"93"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_1.code
|
||||
"98"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_2.code
|
||||
"99"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_3.code
|
||||
"100"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_4.code
|
||||
"102"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_5.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["FORM_OF_WAY"]
|
||||
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){
|
||||
/*道路形态2*/
|
||||
var formWay = renderEntity.properties["FORM_OF_WAY"]
|
||||
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.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code){
|
||||
var boundaryType = renderEntity.properties["boundaryType"]
|
||||
if(boundaryType!=null){
|
||||
when (boundaryType) {
|
||||
"0","1","6","8","9"->{
|
||||
renderEntity.enable=0
|
||||
Log.e("qj","过滤不显示数据${renderEntity.table}")
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){
|
||||
//过滤不需要渲染的要素
|
||||
var boundaryType = renderEntity.properties["boundaryType"]
|
||||
if(boundaryType!=null){
|
||||
when (boundaryType) {
|
||||
"0","3","4","5","7","9"->{
|
||||
renderEntity.enable=0
|
||||
Log.e("qj","过滤不显示数据${renderEntity.table}")
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listResult.add(renderEntity)
|
||||
// 对renderEntity做预处理后再保存
|
||||
val resultEntity = importConfig.transformProperties(renderEntity)
|
||||
|
@ -3,6 +3,7 @@ package com.navinfo.omqs.db
|
||||
import android.util.Log
|
||||
import com.navinfo.collect.library.data.entity.ReferenceEntity
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.collect.library.utils.GeometryTools
|
||||
import io.realm.Realm
|
||||
import org.json.JSONArray
|
||||
@ -397,7 +398,7 @@ class ImportPreProcess {
|
||||
"markingCount" to 1
|
||||
)
|
||||
)
|
||||
if (renderEntity.code == 2013 && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
|
||||
if (renderEntity.code == "2013" && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
|
||||
// 解析shapeList,将数组中的属性放会properties
|
||||
val shapeList = JSONArray(renderEntity.properties["shapeList"])
|
||||
for (i in 0 until shapeList.length()) {
|
||||
@ -416,7 +417,7 @@ class ImportPreProcess {
|
||||
* 解析车信数据二级属性
|
||||
* */
|
||||
fun unpackingLaneInfo(renderEntity: RenderEntity) {
|
||||
if (renderEntity.code == 4601) {
|
||||
if (renderEntity.code == "4601") {
|
||||
if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty() && renderEntity.properties["laneinfoGroup"] != "null") {
|
||||
// 解析laneinfoGroup,将数组中的属性放会properties
|
||||
val laneinfoGroup = JSONArray(
|
||||
@ -451,6 +452,24 @@ class ImportPreProcess {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成默认道路名数据
|
||||
* */
|
||||
fun generateRoadText(renderEntity: RenderEntity) {
|
||||
// 根据类型进行文字转换
|
||||
if (renderEntity.code != null) {
|
||||
if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code){
|
||||
renderEntity.properties["name"] = "SA"
|
||||
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code){
|
||||
renderEntity.properties["name"] = "PA"
|
||||
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code){
|
||||
renderEntity.properties["name"] = "FRONTAGE"
|
||||
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code){
|
||||
renderEntity.properties["name"] = "MAIN"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成默认道路名数据
|
||||
|
@ -63,7 +63,7 @@ class RealmOperateHelper() {
|
||||
val realmList = realm.where(RenderEntity::class.java)
|
||||
.equalTo("table", "OMDB_RD_LINK")
|
||||
.and()
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val dataList = realm.copyFromRealm(realmList)
|
||||
@ -126,7 +126,7 @@ class RealmOperateHelper() {
|
||||
val realmList = realm.where(RenderEntity::class.java)
|
||||
.equalTo("table", table)
|
||||
.and()
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val dataList = realm.copyFromRealm(realmList)
|
||||
@ -165,7 +165,7 @@ class RealmOperateHelper() {
|
||||
|
||||
val realm = Realm.getDefaultInstance()
|
||||
val realmList = realm.where(HadLinkDvoBean::class.java)
|
||||
.equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
var linkBean: HadLinkDvoBean? = null
|
||||
var nearLast: Double = 99999.99
|
||||
@ -189,7 +189,7 @@ class RealmOperateHelper() {
|
||||
val realmR = realm.where(RenderEntity::class.java)
|
||||
.equalTo("table", "OMDB_RD_LINK")
|
||||
.and()
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findFirst()
|
||||
if (realmR != null) {
|
||||
link = realm.copyFromRealm(realmR)
|
||||
@ -207,7 +207,7 @@ class RealmOperateHelper() {
|
||||
val realmR = realm.where(QsRecordBean::class.java)
|
||||
.equalTo("table", "QsRecordBean")
|
||||
.and()
|
||||
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findFirst()
|
||||
if (realmR != null) {
|
||||
qsRecordBean = realm.copyFromRealm(realmR)
|
||||
@ -221,7 +221,7 @@ class RealmOperateHelper() {
|
||||
val realm = Realm.getDefaultInstance()
|
||||
|
||||
val realmR = realm.where(RenderEntity::class.java)
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
|
||||
val dataList = realm.copyFromRealm(realmR)
|
||||
@ -266,7 +266,7 @@ class RealmOperateHelper() {
|
||||
val realmList = realm.where(RenderEntity::class.java)
|
||||
.notEqualTo("table", "OMDB_RD_LINK")
|
||||
.and()
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||
val queryResult = realmList?.stream()?.filter {
|
||||
@ -296,7 +296,7 @@ class RealmOperateHelper() {
|
||||
val realmList = realm.where(RenderEntity::class.java)
|
||||
.notEqualTo("table", "OMDB_RD_LINK")
|
||||
.and()
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
|
||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
|
||||
.findAll()
|
||||
result.addAll(realm.copyFromRealm(realmList))
|
||||
return result
|
||||
|
@ -34,7 +34,7 @@ interface ScProblemTypeDao {
|
||||
suspend fun findClassTypeList(): List<ScProblemTypeBean>?
|
||||
|
||||
@Query("select DISTINCT CLASS_TYPE from ScProblemType where ELEMENT_CODE=:code")
|
||||
suspend fun findClassTypeByCode(code: Int): String?
|
||||
suspend fun findClassTypeByCode(code: String): String?
|
||||
|
||||
/**
|
||||
* 获取问题类型,并去重
|
||||
|
@ -158,13 +158,19 @@ class OfflineMapDownloadScope(
|
||||
val res =
|
||||
fileTemp.renameTo(File("${Constant.OFFLINE_MAP_PATH}${cityBean.fileName}"))
|
||||
change(FileDownloadStatus.DONE)
|
||||
withContext(Dispatchers.Main) {
|
||||
downloadManager.mapController.layerManagerHandler.loadBaseMap()
|
||||
try {
|
||||
withContext(Dispatchers.Main) {
|
||||
downloadManager.mapController.layerManagerHandler.loadBaseMap()
|
||||
}
|
||||
}catch (e:Throwable){
|
||||
Log.e("jingo", "下载离线地图 load map ${e.message}")
|
||||
}
|
||||
|
||||
} else {
|
||||
change(FileDownloadStatus.PAUSE)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
Log.e("jingo", "下载离线地图 ${e.message}")
|
||||
change(FileDownloadStatus.ERROR)
|
||||
} finally {
|
||||
inputStream?.close()
|
||||
|
@ -1,6 +1,9 @@
|
||||
package com.navinfo.omqs.ui.activity.map
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
@ -8,6 +11,7 @@ import android.speech.tts.TextToSpeech
|
||||
import android.util.Log
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.View.OnLongClickListener
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
@ -19,6 +23,7 @@ import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.blankj.utilcode.util.ClipboardUtils
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
@ -43,7 +48,6 @@ import com.navinfo.omqs.util.FlowEventBus
|
||||
import com.navinfo.omqs.util.SpeakMode
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
import org.oscim.android.theme.AssetsRenderTheme
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.renderer.GLViewport
|
||||
import org.videolan.vlc.Util
|
||||
@ -179,6 +183,14 @@ class MainActivity : BaseActivity() {
|
||||
//给xml传递viewModel对象
|
||||
binding.viewModel = viewModel
|
||||
|
||||
binding.mainActivityGeometry.setOnLongClickListener {
|
||||
var text = (it as TextView).text
|
||||
text = text.substring(4)
|
||||
ClipboardUtils.copyText(text)
|
||||
BaseToast.makeText(this, "坐标已复制到剪切板", BaseToast.LENGTH_SHORT).show()
|
||||
true
|
||||
}
|
||||
|
||||
binding.mainActivityVoice.setOnTouchListener { v, event ->
|
||||
when (event?.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
@ -400,6 +412,84 @@ class MainActivity : BaseActivity() {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(R.id.console_fragment_layout, ConsoleFragment()).commit()
|
||||
}
|
||||
initMeasuringTool()
|
||||
}
|
||||
|
||||
/**
|
||||
*初始化测量工具栏的点击事件
|
||||
*/
|
||||
|
||||
private fun initMeasuringTool() {
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_select_point)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_close)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_backspace)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_reset)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_distance)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_area)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_angle)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_value_layout).setOnLongClickListener {
|
||||
val value = root.findViewById<TextView>(R.id.measuring_tool_value).text
|
||||
val unit = root.findViewById<TextView>(R.id.measuring_tool_value_unit).text
|
||||
ClipboardUtils.copyText("$value$unit")
|
||||
BaseToast.makeText(this, "测量结果已复制到剪切板", BaseToast.LENGTH_SHORT).show()
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 测量工具点击事件
|
||||
*/
|
||||
private val measuringToolClickListener = View.OnClickListener {
|
||||
when (it.id) {
|
||||
//选点
|
||||
R.id.measuring_tool_select_point -> {
|
||||
viewModel.addPointForMeasuringTool()
|
||||
}
|
||||
//关闭
|
||||
R.id.measuring_tool_close -> {
|
||||
measuringToolOff()
|
||||
}
|
||||
//上一步
|
||||
R.id.measuring_tool_backspace -> {
|
||||
viewModel.backPointForMeasuringTool()
|
||||
}
|
||||
//重绘
|
||||
R.id.measuring_tool_reset -> {
|
||||
viewModel.resetMeasuringTool()
|
||||
}
|
||||
//测距
|
||||
R.id.measuring_tool_distance -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.DISTANCE)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_area).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_angle).isSelected = false
|
||||
}
|
||||
//测面积
|
||||
R.id.measuring_tool_area -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.AREA)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_distance).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_angle).isSelected = false
|
||||
}
|
||||
//测角度
|
||||
R.id.measuring_tool_angle -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.ANGLE)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_distance).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_area).isSelected = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -443,6 +533,7 @@ class MainActivity : BaseActivity() {
|
||||
binding.mainActivityMeasuringTool.root.visibility = View.GONE
|
||||
}
|
||||
|
||||
|
||||
//根据输入的经纬度跳转坐标
|
||||
fun jumpPosition() {
|
||||
val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null)
|
||||
@ -452,7 +543,7 @@ class MainActivity : BaseActivity() {
|
||||
val editText = view.findViewById<EditText>(R.id.dialog_edittext)
|
||||
val tabItemLayout = view.findViewById<TabLayout>(R.id.search_tab_layout)
|
||||
editText.hint = "请输入LinkPid例如:12345678"
|
||||
var index:Int = 0
|
||||
var index = 0
|
||||
tabItemLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||
override fun onTabReselected(p0: TabLayout.Tab) {
|
||||
|
||||
@ -482,9 +573,9 @@ class MainActivity : BaseActivity() {
|
||||
if (editText.text.isNotEmpty()) {
|
||||
try {
|
||||
when (index) {
|
||||
0 -> viewModel.search(SearchEnum.LINK,editText.text.toString(),dialog)
|
||||
1 -> viewModel.search(SearchEnum.MARK,editText.text.toString(),dialog)
|
||||
2 -> viewModel.search(SearchEnum.LOCATION,editText.text.toString(),dialog)
|
||||
0 -> viewModel.search(SearchEnum.LINK, editText.text.toString(), dialog)
|
||||
1 -> viewModel.search(SearchEnum.MARK, editText.text.toString(), dialog)
|
||||
2 -> viewModel.search(SearchEnum.LOCATION, editText.text.toString(), dialog)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show()
|
||||
@ -890,9 +981,12 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开底部导航栏
|
||||
*/
|
||||
private fun showMainActivityBottomSheetGroup() {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65)
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 10, 60)
|
||||
mapController.mMapView.vtmMap.animator().animateTo(
|
||||
GeoPoint(
|
||||
mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,
|
||||
@ -901,9 +995,12 @@ class MainActivity : BaseActivity() {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭底部导航栏
|
||||
*/
|
||||
private fun hideMainActivityBottomSheetGroup() {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.GONE
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5)
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 10, 0)
|
||||
mapController.mMapView.vtmMap.animator().animateTo(
|
||||
GeoPoint(
|
||||
mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,
|
||||
|
@ -24,6 +24,7 @@ import androidx.navigation.findNavController
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
|
||||
import com.navinfo.collect.library.data.entity.*
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.collect.library.garminvirbxe.HostBean
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.OnGeoPointClickListener
|
||||
@ -484,11 +485,14 @@ class MainViewModel @Inject constructor(
|
||||
captureLinkState = true
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
/* val linkList = realmOperateHelper.queryLink(
|
||||
point = point,
|
||||
)*/
|
||||
|
||||
val linkList = realmOperateHelper.queryLine(point = point, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE")
|
||||
// val linkList = realmOperateHelper.queryLink(point = point,)
|
||||
|
||||
val linkList = realmOperateHelper.queryLine(
|
||||
point = point,
|
||||
buffer = 2.5,
|
||||
table = "OMDB_LANE_MARK_BOUNDARYTYPE"
|
||||
)
|
||||
|
||||
var hisRoadName = false
|
||||
|
||||
@ -509,7 +513,7 @@ class MainViewModel @Inject constructor(
|
||||
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
|
||||
for (element in elementList) {
|
||||
|
||||
if (element.code == 2011) {
|
||||
if (element.code == "2011") {
|
||||
hisRoadName = true
|
||||
liveDataRoadName.postValue(element)
|
||||
continue
|
||||
@ -533,11 +537,11 @@ class MainViewModel @Inject constructor(
|
||||
Log.e("jingo", "捕捉到的数据code ${element.code}")
|
||||
when (element.code) {
|
||||
//车道数,种别,功能等级,线限速,道路方向
|
||||
2041, 2008, 2002, 2019, 2010 -> topSignList.add(
|
||||
DataCodeEnum.OMDB_LANE_NUM.code, DataCodeEnum.OMDB_RD_LINK_KIND.code, DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code, DataCodeEnum.OMDB_LINK_DIRECT.code -> topSignList.add(
|
||||
signBean
|
||||
)
|
||||
|
||||
4002, 4003, 4004, 4010, 4022, 4601 -> signList.add(
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code, DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code, DataCodeEnum.OMDB_ELECTRONICEYE.code, DataCodeEnum.OMDB_TRAFFICLIGHT.code, DataCodeEnum.OMDB_LANEINFO.code -> signList.add(
|
||||
signBean
|
||||
)
|
||||
}
|
||||
@ -1053,7 +1057,8 @@ class MainViewModel @Inject constructor(
|
||||
startTimer()
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG).show()
|
||||
Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG)
|
||||
.show()
|
||||
cancelTrace()
|
||||
}
|
||||
}
|
||||
@ -1100,13 +1105,13 @@ class MainViewModel @Inject constructor(
|
||||
* 设置测量类型 0:距离 2:面积 3:角度
|
||||
*/
|
||||
fun setMeasuringToolType(type: MeasureLayerHandler.MEASURE_TYPE) {
|
||||
if(measuringType != type) {
|
||||
if (measuringType != type) {
|
||||
measuringType = type
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
}
|
||||
|
||||
fun click2Dor3D(){
|
||||
fun click2Dor3D() {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
Log.e(
|
||||
"qj",
|
||||
@ -1122,53 +1127,68 @@ class MainViewModel @Inject constructor(
|
||||
* @param searchEnum 枚举类
|
||||
* @param msg 搜索内容
|
||||
*/
|
||||
fun search(searchEnum: SearchEnum,msg:String,dialog:DialogInterface){
|
||||
if(searchEnum!=null&&msg.isNotEmpty()&&dialog!=null){
|
||||
fun search(searchEnum: SearchEnum, msg: String, dialog: DialogInterface) {
|
||||
if (searchEnum != null && msg.isNotEmpty() && dialog != null) {
|
||||
when (searchEnum) {
|
||||
SearchEnum.LINK -> {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val link = realmOperateHelper.queryLink(linkPid = msg)
|
||||
if(link!=null){
|
||||
link?.let { l ->
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
dialog.dismiss()
|
||||
}
|
||||
}else{
|
||||
withContext(Dispatchers.Main){
|
||||
Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val link = realmOperateHelper.queryLink(linkPid = msg)
|
||||
if (link != null) {
|
||||
link?.let { l ->
|
||||
mapController.lineHandler.showLine(l.geometry)
|
||||
dialog.dismiss()
|
||||
}
|
||||
} else {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
mapController.mMapView.context,
|
||||
"未查询到数据",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SearchEnum.MARK -> {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val qsRecordBean = realmOperateHelper.queryQcRecordBean(markId = msg)
|
||||
if(qsRecordBean!=null){
|
||||
if (qsRecordBean != null) {
|
||||
qsRecordBean?.let { l ->
|
||||
val naviController = (mapController.mMapView.context as Activity).findNavController(R.id.main_activity_right_fragment)
|
||||
val naviController =
|
||||
(mapController.mMapView.context as Activity).findNavController(R.id.main_activity_right_fragment)
|
||||
val bundle = Bundle()
|
||||
bundle.putString("QsId", l.id)
|
||||
naviController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
ToastUtils.showLong(l.classType)
|
||||
dialog.dismiss()
|
||||
}
|
||||
}else{
|
||||
withContext(Dispatchers.Main){
|
||||
Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
mapController.mMapView.context,
|
||||
"未查询到数据",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SearchEnum.LOCATION -> {
|
||||
val parts = msg.split("[,,\\s]".toRegex())
|
||||
if (parts.size == 2) {
|
||||
val x = parts[0].toDouble()
|
||||
val y = parts[1].toDouble()
|
||||
mapController.animationHandler.animationByLatLon(y, x)
|
||||
mapController.markerHandle.addMarker(GeoPoint(y,x),"location")
|
||||
mapController.markerHandle.addMarker(GeoPoint(y, x), "location")
|
||||
dialog.dismiss()
|
||||
} else {
|
||||
Toast.makeText(mapController.mMapView.context, "输入格式不正确", Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(
|
||||
mapController.mMapView.context,
|
||||
"输入格式不正确",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.SignBean
|
||||
import com.navinfo.omqs.databinding.AdapterSignBinding
|
||||
@ -30,7 +31,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
|
||||
private var selectMoreInfoTag: String = ""
|
||||
|
||||
override fun getItemViewType(position: Int): Int {
|
||||
if (data.isNotEmpty() && data[position].renderEntity.code == 4601) {
|
||||
if (data.isNotEmpty() && data[position].renderEntity.code == "4601") {
|
||||
return 4601
|
||||
}
|
||||
return 0
|
||||
@ -77,7 +78,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
|
||||
bd.signMainInfo.visibility = View.GONE
|
||||
}
|
||||
bd.signSecondIcon.text = ""
|
||||
if (item.renderEntity.code == 4002) {
|
||||
if (item.renderEntity.code == DataCodeEnum.OMDB_SPEEDLIMIT.code) {
|
||||
val minSpeed = SignUtil.getSpeedLimitMinText(item.renderEntity)
|
||||
if (minSpeed != "0") {
|
||||
bd.signSecondIcon.text = minSpeed
|
||||
|
@ -180,7 +180,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
} else {
|
||||
liveDataQsRecordBean.value?.run {
|
||||
elementId = bean.renderEntity.code.toString()
|
||||
elementId = bean.renderEntity.code
|
||||
linkId = bean.linkId
|
||||
if (linkId.isNotEmpty()) {
|
||||
viewModelScope.launch {
|
||||
@ -257,7 +257,7 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
if (classType2 != null) {
|
||||
classType = classType2
|
||||
}
|
||||
classCode = bean.renderEntity.code.toString()
|
||||
classCode = bean.renderEntity.code
|
||||
}
|
||||
//如果右侧栏没数据,给个默认值
|
||||
if (liveDataQsRecordBean.value!!.classType.isEmpty()) {
|
||||
|
@ -8,6 +8,7 @@ import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.SignBean
|
||||
import com.navinfo.omqs.databinding.FragmentSignInfoBinding
|
||||
@ -50,37 +51,37 @@ class SignMoreInfoFragment : BaseFragment() {
|
||||
|
||||
when (it.code) {
|
||||
//道路名
|
||||
2011 -> {
|
||||
DataCodeEnum.OMDB_RD_LINK.code -> {
|
||||
val adapter = RoadNameInfoAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getRoadNameList(it))
|
||||
}
|
||||
//车道边界类型
|
||||
2013 -> {
|
||||
DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> {
|
||||
val adapter = LaneBoundaryAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it))
|
||||
}
|
||||
//可变点限速
|
||||
2021 -> {
|
||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code -> {
|
||||
val adapter = TwoItemAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getChangeLimitSpeedInfo(it))
|
||||
}
|
||||
//常规点限速
|
||||
4002 -> {
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code -> {
|
||||
val adapter = TwoItemAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it))
|
||||
}
|
||||
//条件点限速
|
||||
4003 -> {
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> {
|
||||
val adapter = TwoItemAdapter()
|
||||
binding.signInfoRecyclerview.adapter = adapter
|
||||
adapter.refreshData(SignUtil.getConditionLimitMoreInfoText(it))
|
||||
}
|
||||
//电子眼
|
||||
4010
|
||||
DataCodeEnum.OMDB_ELECTRONICEYE.code
|
||||
-> {
|
||||
val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null);
|
||||
drawable.setBounds(
|
||||
|
@ -2,6 +2,7 @@ package com.navinfo.omqs.ui.widget
|
||||
|
||||
import android.util.Log
|
||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||
import com.navinfo.collect.library.enum.DataCodeEnum
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.RoadNameBean
|
||||
import com.navinfo.omqs.bean.SignBean
|
||||
@ -21,17 +22,17 @@ class SignUtil {
|
||||
fun getSignIconText(data: RenderEntity): String {
|
||||
return when (data.code) {
|
||||
//道路功能等级
|
||||
2002 -> getLinkFunctionClassText(data)
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> getLinkFunctionClassText(data)
|
||||
//道路种别
|
||||
2008 -> getKindText(data)
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> getKindText(data)
|
||||
//道路方向
|
||||
2010 -> getRoadDirectionText(data)
|
||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> getRoadDirectionText(data)
|
||||
//常规线限速
|
||||
2019 -> getLineSpeedLimitText(data)
|
||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
|
||||
//车道数
|
||||
2041 -> getLaneNumText(data)
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
|
||||
//常规点限速,条件点限速
|
||||
4002, 4003 -> getSpeedLimitMaxText(data)
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(data)
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
@ -77,31 +78,31 @@ class SignUtil {
|
||||
fun getSignNameText(data: RenderEntity): String {
|
||||
return when (data.code) {
|
||||
//道路功能等级
|
||||
2002 -> "功能等级"
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> "功能等级"
|
||||
//道路种别
|
||||
2008 -> "种别"
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> "种别"
|
||||
//道路方向
|
||||
2010 -> "方向"
|
||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> "方向"
|
||||
//车道边界类型
|
||||
2013 -> "车道边界类型"
|
||||
DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> "车道边界类型"
|
||||
//常规线限速
|
||||
2019 -> "线限速"
|
||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> "线限速"
|
||||
//车道数
|
||||
2041 -> "车道数"
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> "车道数"
|
||||
//常规点限速
|
||||
4002 -> "常规点限速"
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code -> "常规点限速"
|
||||
//常点限速
|
||||
4003 -> "条件点限速"
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> "条件点限速"
|
||||
//可变点限速
|
||||
4004 -> "可变点限速"
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> "可变点限速"
|
||||
//普通交限
|
||||
4006 -> "普通交限"
|
||||
DataCodeEnum.OMDB_RESTRICTION.code -> "普通交限"
|
||||
//电子眼
|
||||
4010 -> "电子眼"
|
||||
DataCodeEnum.OMDB_ELECTRONICEYE.code -> "电子眼"
|
||||
//交通灯
|
||||
4022 -> "交通灯"
|
||||
//交限
|
||||
4601 -> "车信"
|
||||
DataCodeEnum.OMDB_TRAFFICLIGHT.code -> "交通灯"
|
||||
//车信
|
||||
DataCodeEnum.OMDB_LANEINFO.code -> "车信"
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
@ -203,9 +204,9 @@ class SignUtil {
|
||||
return when (data.code) {
|
||||
|
||||
//条件点限速
|
||||
4003 -> getConditionLimitText(data)
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionLimitText(data)
|
||||
//电子眼
|
||||
4010 -> data.properties["name"].toString()
|
||||
DataCodeEnum.OMDB_ELECTRONICEYE.code -> data.properties["name"].toString()
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
@ -394,15 +395,15 @@ class SignUtil {
|
||||
// //车道数
|
||||
// 2041 -> getLaneNumIcon(data)
|
||||
//普通点限速
|
||||
4002 -> getSpeedLimitIcon(data)
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitIcon(data)
|
||||
//条件点限速
|
||||
4003 -> getConditionalSpeedLimitIcon(data)
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionalSpeedLimitIcon(data)
|
||||
//可变点限速
|
||||
4004 -> R.drawable.icon_change_limit
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> R.drawable.icon_change_limit
|
||||
//电子眼
|
||||
4010 -> R.drawable.icon_electronic_eye
|
||||
DataCodeEnum.OMDB_ELECTRONICEYE.code -> R.drawable.icon_electronic_eye
|
||||
//交通灯
|
||||
4022 -> R.drawable.icon_traffic_light
|
||||
DataCodeEnum.OMDB_TRAFFICLIGHT.code -> R.drawable.icon_traffic_light
|
||||
else -> 0
|
||||
}
|
||||
|
||||
@ -489,10 +490,10 @@ class SignUtil {
|
||||
stringBuffer.append("当前道路")
|
||||
for (item in topSignList) {
|
||||
when (item.renderEntity.code) {
|
||||
2002 -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,")
|
||||
2008 -> stringBuffer.append("种别${item.iconText},")
|
||||
2010 -> stringBuffer.append("${item.iconText},")
|
||||
2041 -> stringBuffer.append("${item.iconText.substringBefore("|")}车道")
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,")
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
|
||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append("${item.iconText.substringBefore("|")}车道")
|
||||
}
|
||||
}
|
||||
return stringBuffer.toString()
|
||||
@ -503,7 +504,7 @@ class SignUtil {
|
||||
*/
|
||||
fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> {
|
||||
val list = mutableListOf<RoadNameBean>()
|
||||
if (data.code == 2011) {
|
||||
if (data.code == "2011") {
|
||||
try {
|
||||
val shapeStr = data.properties["shapeList"]
|
||||
val array = JSONArray(shapeStr)
|
||||
@ -541,11 +542,11 @@ class SignUtil {
|
||||
fun isMoreInfo(element: RenderEntity): Boolean {
|
||||
val isMore = when (element.code) {
|
||||
//常规点限速
|
||||
4002 -> getSpeedLimitMinText(element) != "0"
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitMinText(element) != "0"
|
||||
//条件点限速
|
||||
4003 -> true
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> true
|
||||
//电子眼
|
||||
4010 -> true
|
||||
DataCodeEnum.OMDB_ELECTRONICEYE.code -> true
|
||||
else -> false
|
||||
}
|
||||
return isMore
|
||||
@ -755,11 +756,11 @@ class SignUtil {
|
||||
*/
|
||||
fun getRoadInfoIndex(element: RenderEntity): Int {
|
||||
return when (element.code) {
|
||||
2041 -> 0
|
||||
2008 -> 1
|
||||
2002 -> 2
|
||||
2019 -> 3
|
||||
2010 -> 4
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> 0
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2
|
||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> 3
|
||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> 4
|
||||
else -> 999
|
||||
}
|
||||
}
|
||||
|
@ -212,7 +212,6 @@
|
||||
android:drawableLeft="@drawable/icon_main_geometry"
|
||||
android:elevation="2dp"
|
||||
android:gravity="center"
|
||||
android:onClick="@{()->mainActivity.jumpPosition()}"
|
||||
android:paddingLeft="9dp"
|
||||
android:text="经纬度:116.99388424,38.8403844"
|
||||
android:textSize="10sp"
|
||||
|
@ -9,6 +9,7 @@
|
||||
android:padding="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/measuring_tool_value_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="5dp"
|
||||
|
@ -178,6 +178,10 @@
|
||||
<style-line id="boundaryType" stipple-width="0.1" width="0.1" />
|
||||
<style-line dasharray="1,1" id="s2e" repeat-gap="3" repeat-start="0" stroke="#14582c"
|
||||
width="0.1" />
|
||||
|
||||
<!--道路形态-->
|
||||
<style-line dasharray="8,2,2,2,2,2" id="road_morphology" repeat-gap="3" repeat-start="0" stroke="#fcba5a" width="0.2" />
|
||||
|
||||
<!--###### ASSIGNMENT ######-->
|
||||
|
||||
<m e="way" k="natural" v="issea|sea">
|
||||
@ -1951,8 +1955,8 @@
|
||||
</m>
|
||||
|
||||
<m v="OMDB_AREA">
|
||||
<!-- <area use="sign-bg" repeat="false" src="assets:omdb/veer_side_walk.jpg" stroke="#ff0000" stroke-width="2"></area>-->
|
||||
<area use="sign-bg" repeat="false" src="@text:人行横道" stroke="#ff0000" stroke-width="2"></area>
|
||||
<!-- <area use="sign-bg" repeat="false" src="assets:omdb/veer_side_walk.jpg" stroke="#ff0000" stroke-width="2"></area>
|
||||
<area use="sign-bg" repeat="false" src="@text:人行横道" stroke="#ff0000" stroke-width="2"></area>-->
|
||||
</m>
|
||||
<!-- 路口 -->
|
||||
<m v="OMDB_INTERSECTION">
|
||||
@ -1972,6 +1976,9 @@
|
||||
<m k="width" v="~">
|
||||
<line stroke="#7A88A0" width="2.8" />
|
||||
</m>
|
||||
<m k="width" v="~">
|
||||
<line stroke="#4624FF" width="0.1" />
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<!--隧道-->
|
||||
@ -2031,9 +2038,12 @@
|
||||
<!-- 道路边界类型 -->
|
||||
<m v="OMDB_RDBOUND_BOUNDARYTYPE">
|
||||
<outline-layer id="boundaryType" stroke="#8e44ad" width="0.1" />
|
||||
<m k="boundaryType" v="0|2|3|4|5|6|7|8|9">
|
||||
<m k="boundaryType" v="2|6|8">
|
||||
<line stroke="#ffffff" use="boundaryType" width="0.1"/>
|
||||
</m>
|
||||
<!-- <m k="boundaryType" v="0|2|3|4|5|6|7|8|9">
|
||||
<line stroke="#ffffff" use="boundaryType" width="0.1"/>
|
||||
</m>-->
|
||||
<m k="boundaryType" v="1">
|
||||
<!--无标线无可区分边界-->
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#ffffff" width="0.2"/>
|
||||
@ -2046,9 +2056,9 @@
|
||||
<outline-layer id="boundary" stroke="#ffffff" width="0.1" />
|
||||
|
||||
<!--只区分虚线与实线-->
|
||||
<m k="boundaryType" v="1">
|
||||
<!-- <m k="boundaryType" v="1">
|
||||
<line dasharray="5,5" repeat-start="5" stroke="#90A0BD" width="0.05"/>
|
||||
</m>
|
||||
</m>-->
|
||||
|
||||
<m k="boundaryType" v="2">
|
||||
<!--标线-->
|
||||
@ -2079,31 +2089,84 @@
|
||||
|
||||
<!--其他|实线-->
|
||||
<m k="markColor" v="1">
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#ffffff" width="0.1"/>
|
||||
<line dasharray="2,2" repeat-start="0" stroke="#ffffff" width="0.1"/>
|
||||
</m>
|
||||
<m k="markColor" v="2">
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#eccc68" width="0.1"/>
|
||||
<line dasharray="2,2" repeat-start="0" stroke="#eccc68" width="0.1"/>
|
||||
</m>
|
||||
|
||||
<m k="markColor" v="6">
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#0000ff" width="0.1"/>
|
||||
<line dasharray="2,2" repeat-start="0" stroke="#0000ff" width="0.1"/>
|
||||
</m>
|
||||
|
||||
<m k="markColor" v="7">
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#00ff00" width="0.1"/>
|
||||
<line dasharray="2,2" repeat-start="0" stroke="#00ff00" width="0.1"/>
|
||||
</m>
|
||||
|
||||
<m k="markColor" v="0|9">
|
||||
<line dasharray="5,5" repeat-start="0" stroke="#8e44ad" width="0.1"/>
|
||||
<line dasharray="2,2" repeat-start="0" stroke="#8e44ad" width="0.1"/>
|
||||
</m>
|
||||
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<m k="boundaryType" v="0|3|4|5|6|7|8|9">
|
||||
<m k="boundaryType" v="3|4|5|7">
|
||||
<line stroke="#ffffff" use="boundaryType" />
|
||||
</m>
|
||||
<!-- <m k="boundaryType" v="0|3|4|5|6|7|8|9">
|
||||
<line stroke="#ffffff" use="boundaryType" />
|
||||
</m>-->
|
||||
</m>
|
||||
|
||||
<!-- 道路属性 -->
|
||||
<m v="OMDB_LINK_ATTRIBUTE">
|
||||
|
||||
<m k="code" v="OMDB_LINK_ATTRIBUTE_SA">
|
||||
<text use="road" stroke="#fcba5a" size="16"></text>
|
||||
</m>
|
||||
|
||||
<m k="code" v="OMDB_LINK_ATTRIBUTE_PA">
|
||||
<text use="road" stroke="#fcba5a" size="16"></text>
|
||||
</m>
|
||||
|
||||
<m k="code" v="OMDB_LINK_ATTRIBUTE_FORNTAGE">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<m k="code" v="OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
</m>
|
||||
|
||||
<!-- 匝道 -->
|
||||
<m v="OMDB_RAMP">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!-- 上下线分离 -->
|
||||
<m v="OMDB_MULTI_DIGITIZED">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!-- 全封闭 -->
|
||||
<m v="OMDB_CON_ACESS">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!-- 高架 -->
|
||||
<m v="OMDB_VIADUCT">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!-- 道路形态1 -->
|
||||
<m v="OMDB_LINK_FORM1">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!-- 道路形态2 -->
|
||||
<m v="OMDB_LINK_FORM2">
|
||||
<line use="road_morphology" />
|
||||
</m>
|
||||
|
||||
<!--常规点限速-->
|
||||
|
@ -24,7 +24,7 @@ open class RenderEntity() : RealmObject(), Parcelable {
|
||||
var id: String = UUID.randomUUID().toString() // id
|
||||
lateinit var name: String //要素名
|
||||
lateinit var table: String //要素表名
|
||||
var code: Int = 0 // 要素编码
|
||||
var code: String = "0" // 要素编码
|
||||
var geometry: String =
|
||||
"" // 要素渲染参考的geometry,该数据可能会在导入预处理环节被修改,原始geometry会保存在properties的geometry字段下
|
||||
get() {
|
||||
|
@ -0,0 +1,164 @@
|
||||
package com.navinfo.collect.library.enum
|
||||
|
||||
/*
|
||||
* 要素枚举定义
|
||||
* */
|
||||
enum class DataCodeEnum(var tableName: String, var code: String) {
|
||||
OMDB_CHECKPOINT("检查点", "1012"), OMDB_RD_LINK(
|
||||
"道路线",
|
||||
"2001"
|
||||
),
|
||||
OMDB_RD_LINK_FUNCTION_CLASS("道路功能等级", "2002"),
|
||||
OMDB_LINK_ATTRIBUTE("道路属性", "2004"),
|
||||
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"), OMDB_LINK_ATTRIBUTE_PA(
|
||||
"道路属性-PA",
|
||||
"2004-2"
|
||||
),
|
||||
OMDB_LINK_ATTRIBUTE_FORNTAGE(
|
||||
"道路属性-辅路",
|
||||
"2004-3"
|
||||
),
|
||||
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS(
|
||||
"道路属性-主辅路出入口",
|
||||
"2004-4"
|
||||
),
|
||||
OMDB_RD_LINK_KIND("道路种别", "2008"),
|
||||
OMDB_LINK_DIRECT("道路方向", "2010"), OMDB_LINK_NAME(
|
||||
"道路名",
|
||||
"2011"
|
||||
),
|
||||
OMDB_LANE_MARK_BOUNDARYTYPE("车道边界类型", "2013"),
|
||||
OMDB_LINK_SPEEDLIMIT("常规线限速", "2019"), OMDB_LINK_SPEEDLIMIT_COND(
|
||||
"条件线限速",
|
||||
"2020"
|
||||
),
|
||||
OMDB_LINK_SPEEDLIMIT_VAR("可变线限速", "2021"),
|
||||
OMDB_CON_ACCESS("全封闭", "2022"),
|
||||
OMDB_RAMP(
|
||||
"匝道",
|
||||
"2037"
|
||||
),
|
||||
OMDB_RAMP_1(
|
||||
"普通路连接匝道",
|
||||
"2037-1"
|
||||
),
|
||||
OMDB_RAMP_2(
|
||||
"高速入口匝道",
|
||||
"2037-2"
|
||||
),
|
||||
OMDB_RAMP_3(
|
||||
"高速出口匝道",
|
||||
"2037-3"
|
||||
),
|
||||
OMDB_RAMP_4(
|
||||
"高速连接匝道",
|
||||
"2037-4"
|
||||
),
|
||||
OMDB_RAMP_5(
|
||||
"高速直连入口匝道",
|
||||
"2037-5"
|
||||
),
|
||||
OMDB_RAMP_6(
|
||||
"高速直连出口匝道",
|
||||
"2037-6"
|
||||
),
|
||||
OMDB_RAMP_7(
|
||||
"高速直连出口匝道高速出入口匝道",
|
||||
"2037-7"
|
||||
),
|
||||
OMDB_MULTI_DIGITIZED("上下线分离", "2040"), OMDB_LANE_NUM("车道数", "2041"),
|
||||
OMDB_VIADUCT("高架", "2043"),
|
||||
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_BRIDGE(
|
||||
"桥",
|
||||
"2201"
|
||||
),
|
||||
OMDB_TUNNEL("隧道", "2202"),
|
||||
OMDB_RoundAbout(
|
||||
"环岛",
|
||||
"2204"
|
||||
),
|
||||
OMDB_LINK_FORM1(
|
||||
"道路形态1",
|
||||
"2205"
|
||||
),
|
||||
OMDB_LINK_FORM1_1(
|
||||
"U-Turn",
|
||||
"2205-1"
|
||||
),
|
||||
OMDB_LINK_FORM1_2(
|
||||
"提前右转",
|
||||
"2205-2"
|
||||
),
|
||||
OMDB_LINK_FORM1_3(
|
||||
"提前左转",
|
||||
"2205-3"
|
||||
),
|
||||
OMDB_LINK_FORM2(
|
||||
"道路形态2",
|
||||
"2206"
|
||||
),
|
||||
OMDB_LINK_FORM2_1(
|
||||
"IC",
|
||||
"2206-1"
|
||||
),
|
||||
OMDB_LINK_FORM2_2(
|
||||
"JCT",
|
||||
"2206-2"
|
||||
),
|
||||
OMDB_LINK_FORM2_3(
|
||||
"跨线地道",
|
||||
"2206-3"
|
||||
),
|
||||
OMDB_LINK_FORM2_4(
|
||||
"私道",
|
||||
"2206-4"
|
||||
),
|
||||
OMDB_LINK_FORM2_5(
|
||||
"步行街",
|
||||
"2206-5"
|
||||
),
|
||||
OMDB_LINK_FORM2_6(
|
||||
"公交专用道",
|
||||
"2206-6"
|
||||
),
|
||||
OMDB_LINK_FORM2_7(
|
||||
"POI 连接路",
|
||||
"2206-7"
|
||||
),
|
||||
OMDB_LINK_FORM2_8(
|
||||
"区域内道路",
|
||||
"2206-8"
|
||||
),
|
||||
OMDB_LINK_FORM2_9(
|
||||
"停车场出入口连接路",
|
||||
"2206-9"
|
||||
),
|
||||
OMDB_LINK_FORM2_10(
|
||||
"停车场内部虚拟连接路",
|
||||
"2206-10"
|
||||
),
|
||||
OMDB_LINK_FORM2_11(
|
||||
"风景路线",
|
||||
"2206-11"
|
||||
),OMDB_LINK_FORM2_12(
|
||||
"车辆测试路段",
|
||||
"2206-12"
|
||||
),
|
||||
OMDB_LINK_FORM2_13(
|
||||
"驾照考试路段",
|
||||
"2206-13"
|
||||
),
|
||||
|
||||
OMDB_INTERSECTION("路口", "4001"),
|
||||
OMDB_SPEEDLIMIT("常规点限速", "4002"), OMDB_SPEEDLIMIT_COND(
|
||||
"条件点限速",
|
||||
"4003"
|
||||
),
|
||||
OMDB_SPEEDLIMIT_VAR("可变点限速", "4004"), OMDB_RESTRICTION("普通交限", "4006"),
|
||||
OMDB_ELECTRONICEYE("电子眼", "4010"), OMDB_TRAFFICLIGHT(
|
||||
"交通灯",
|
||||
"4022"
|
||||
),
|
||||
OMDB_LANEINFO("车信", "4601"), OMDB_LANE_LINK_LG("车道中心线", "5001")
|
||||
}
|
||||
|
@ -262,7 +262,7 @@ public final class NIMapView extends RelativeLayout {
|
||||
|
||||
// 增加比例尺图层
|
||||
NaviMapScaleBar naviMapScaleBar = new NaviMapScaleBar(getVtmMap());
|
||||
mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5);
|
||||
mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_LEFT, 10, 0);
|
||||
|
||||
// if (gridLayer == null) {
|
||||
// gridLayer = new TileGridLayer(getVtmMap());
|
||||
@ -898,7 +898,7 @@ public final class NIMapView extends RelativeLayout {
|
||||
mapScaleBarLayer = null;
|
||||
}
|
||||
NaviMapScaleBar naviMapScaleBar = new NaviMapScaleBar(getVtmMap());
|
||||
mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, xOffset, yOffset);
|
||||
mapScaleBarLayer = naviMapScaleBar.initScaleBarLayer(GLViewport.Position.BOTTOM_LEFT, xOffset, yOffset);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,7 +55,6 @@ public class OMDBTileDataSource implements ITileDataSource {
|
||||
if (!listResult.isEmpty()) {
|
||||
mThreadLocalDecoders.get().decode(tile.zoomLevel, tile, mapDataSink, listResult);
|
||||
}
|
||||
// Log.e("jingo", listResult.size() + "条数据 主");
|
||||
mapDataSink.completed(QueryResult.SUCCESS);
|
||||
} else {
|
||||
mapDataSink.completed(QueryResult.SUCCESS);
|
||||
|
Loading…
x
Reference in New Issue
Block a user