Conflicts:
	app/src/main/java/com/navinfo/omqs/Constant.kt
	app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt
This commit is contained in:
qiji4215 2023-06-26 14:18:48 +08:00
commit fb08f42848
41 changed files with 516 additions and 460 deletions

View File

@ -20,6 +20,19 @@
"code": 2010, "code": 2010,
"name": "道路方向" "name": "道路方向"
}, },
"2011": {
"table": "OMDB_LINK_NAME",
"code": 2011,
"name": "道路名",
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadName()"
}
]
},
"2013": { "2013": {
"table": "OMDB_LANE_MARK_BOUNDARYTYPE", "table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013, "code": 2013,
@ -83,6 +96,14 @@
"code": 2202, "code": 2202,
"name": "隧道" "name": "隧道"
}, },
"4001": {
"table": "OMDB_INTERSECTION",
"code": 4001,
"name": "路口",
"transformer": [
]
},
"4002": { "4002": {
"table": "OMDB_SPEEDLIMIT", "table": "OMDB_SPEEDLIMIT",
"code": 4002, "code": 4002,
@ -153,6 +174,14 @@
} }
] ]
}, },
"4010":{
"table": "OMDB_ELECTRONICEYE",
"code": 4010,
"name": "电子眼",
"transformer": [
]
},
"4022": { "4022": {
"table": "OMDB_TRAFFICLIGHT", "table": "OMDB_TRAFFICLIGHT",
"code": 4022, "code": 4022,
@ -166,10 +195,23 @@
} }
] ]
}, },
"4601":{
"table": "OMDB_LANEINFO",
"code": 4601,
"name": "车信",
"transformer": [
]
},
"5001":{ "5001":{
"table": "OMDB_LANE_LINK_LG", "table": "OMDB_LANE_LINK_LG",
"code": 5001, "code": 5001,
"name": "车道中心线" "name": "车道中心线"
} },
"5002":{
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
}
} }
} }

View File

@ -1,5 +1,7 @@
package com.navinfo.omqs package com.navinfo.omqs
import com.navinfo.omqs.bean.ImportConfig
class Constant { class Constant {
companion object { companion object {
/** /**
@ -45,6 +47,11 @@ class Constant {
*/ */
lateinit var DOWNLOAD_PATH: String lateinit var DOWNLOAD_PATH: String
/**
* 图层管理对应的配置
* */
var LAYER_CONFIG_LIST: List<ImportConfig>? = null
/** /**
* 室内整理工具IP * 室内整理工具IP
*/ */

View File

@ -119,14 +119,28 @@ class ImportPreProcess {
* 解析车道边线数据二级属性 * 解析车道边线数据二级属性
* */ * */
fun unpackingLaneBoundary(renderEntity: RenderEntity) { fun unpackingLaneBoundary(renderEntity: RenderEntity) {
var shape:JSONObject = JSONObject(mapOf(
"lateralOffset" to 0,
"markType" to 1,
"markColor" to 0,
"markMaterial" to 1,
"markSeqNum" to 1,
"markWidth" to 10,
"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 // 解析shapeList将数组中的属性放会properties
val shapeList = JSONArray(renderEntity.properties["shapeList"]) val shapeList = JSONArray(renderEntity.properties["shapeList"])
val shape = shapeList.getJSONObject(0) for (i in 0 until shapeList.length()) {
for (key in shape.keys()) { shape = shapeList.getJSONObject(i)
renderEntity.properties[key] = shape[key].toString() if (shape.optInt("lateralOffset", 0) == 0) {
break
}
} }
} }
for (key in shape.keys()) {
renderEntity.properties[key] = shape[key].toString()
}
} }
/** /**
@ -176,4 +190,31 @@ class ImportPreProcess {
angleReference.properties["type"] = "angle" angleReference.properties["type"] = "angle"
Realm.getDefaultInstance().insert(angleReference) Realm.getDefaultInstance().insert(angleReference)
} }
fun generateRoadName(renderEntity: RenderEntity) {
// LinkName的真正名称数据是保存在properties的shapeList中的因此需要解析shapeList数据
var shape :JSONObject? = null
if (renderEntity.properties.containsKey("shapeList")) {
val shapeListJsonArray: JSONArray = JSONArray(renderEntity.properties["shapeList"])
for (i in 0 until shapeListJsonArray.length()) {
val shapeJSONObject = shapeListJsonArray.getJSONObject(i)
if (shapeJSONObject["nameClass"]==1) {
if (shape == null) {
shape = shapeJSONObject
}
// 获取第一官方名
//("名称分类"NAME_CLASS =“1 官方名”且名称序号SEQ_NUM 最小者)
if (shapeJSONObject["seqNum"].toString().toInt()< shape!!["seqNum"].toString().toInt()) {
shape = shapeJSONObject
}
}
}
}
// 获取最小的shape值将其记录增加记录在properties的name属性下
if(shape!=null) {
renderEntity.properties["name"] = shape["name"].toString()
} else {
renderEntity.properties["name"] = ""
}
}
} }

View File

@ -149,11 +149,9 @@ class OfflineMapDownloadScope(
} }
} }
Log.e("jingo", "文件下载完成 ${cityBean.currentSize} == ${cityBean.fileSize}")
if (cityBean.currentSize == cityBean.fileSize) { if (cityBean.currentSize == cityBean.fileSize) {
val res = val res =
fileTemp.renameTo(File("${Constant.OFFLINE_MAP_PATH}${cityBean.fileName}")) fileTemp.renameTo(File("${Constant.OFFLINE_MAP_PATH}${cityBean.fileName}"))
Log.e("jingo", "文件下载完成 修改文件 $res")
change(FileDownloadStatus.DONE) change(FileDownloadStatus.DONE)
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
downloadManager.mapController.layerManagerHandler.loadBaseMap() downloadManager.mapController.layerManagerHandler.loadBaseMap()

View File

@ -188,7 +188,6 @@ class TaskDownloadScope(
responseBody ?: throw IOException("jingo ResponseBody is null") responseBody ?: throw IOException("jingo ResponseBody is null")
if (startPosition == 0L) { if (startPosition == 0L) {
taskBean.fileSize = responseBody.contentLength() taskBean.fileSize = responseBody.contentLength()
Log.e("jingo", "当前文件大小 ${taskBean.fileSize}")
} }
change(FileDownloadStatus.LOADING) change(FileDownloadStatus.LOADING)
//写入文件 //写入文件

View File

@ -15,16 +15,20 @@ class LayerConfigUtils {
private val gson = Gson() private val gson = Gson()
fun getLayerConfigList(): List<ImportConfig> { fun getLayerConfigList(): List<ImportConfig> {
// 首先读取Shared文件如果存在则直接返回否则读取config文件 // 首先读取全局变量的数据如果存在则直接返回否则读取config文件
return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let { if (Constant.LAYER_CONFIG_LIST == null) {
if (it != null) { Constant.LAYER_CONFIG_LIST = getLayerConfigListFromAssetsFile()
val result: List<ImportConfig> =
gson.fromJson(it, object : TypeToken<List<ImportConfig>>() {}.type)
result
} else {
LayerConfigUtils.getLayerConfigListFromAssetsFile()
}
} }
return Constant.LAYER_CONFIG_LIST!!
// return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let {
// if (it != null) {
// val result: List<ImportConfig> =
// gson.fromJson(it, object : TypeToken<List<ImportConfig>>() {}.type)
// result
// } else {
// LayerConfigUtils.getLayerConfigListFromAssetsFile()
// }
// }
} }
private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> { private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> {

View File

@ -23,6 +23,7 @@ import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.Constant import com.navinfo.omqs.Constant
import com.navinfo.omqs.R import com.navinfo.omqs.R
import com.navinfo.omqs.bean.ImportConfig import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.ActivityMainBinding import com.navinfo.omqs.databinding.ActivityMainBinding
import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager
import com.navinfo.omqs.tools.LayerConfigUtils import com.navinfo.omqs.tools.LayerConfigUtils
@ -67,9 +68,7 @@ class MainActivity : BaseActivity() {
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) { if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data val data: Intent? = result.data
Log.e("jingo", "MainActivity someActivityResultLauncher RESULT_OK")
} else { } else {
Log.e("jingo", "MainActivity someActivityResultLauncher ${result.resultCode}")
} }
} }
@ -88,16 +87,44 @@ class MainActivity : BaseActivity() {
* 提前显示要素看板 * 提前显示要素看板
*/ */
private val signAdapter by lazy { private val signAdapter by lazy {
SignAdapter { _, autoSave, signBean -> SignAdapter(object : OnSignAdapterClickListener {
rightController.currentDestination?.let { override fun onItemClick(signBean: SignBean) {
if (it.id == R.id.RightEmptyFragment) { rightController.currentDestination?.let {
val bundle = Bundle() if (it.id == R.id.RightEmptyFragment) {
bundle.putParcelable("SignBean", signBean) val bundle = Bundle()
bundle.putBoolean("AutoSave", autoSave) bundle.putParcelable("SignBean", signBean)
rightController.navigate(R.id.EvaluationResultFragment, bundle) bundle.putBoolean("AutoSave", false)
rightController.navigate(R.id.EvaluationResultFragment, bundle)
}
} }
} }
}
override fun onMoreInfoClick(selectTag: String, tag: String, signBean: SignBean) {
if (binding.mainActivitySignMoreInfoGroup.visibility != View.VISIBLE || selectTag != tag) {
binding.mainActivitySignMoreInfoGroup.visibility = View.VISIBLE
binding.mainActivitySignMoreInfoTitle.text = signBean.name
binding.mainActivitySignMoreInfoText1.text = signBean.bottomRightText
binding.mainActivitySignMoreInfoText2.text = signBean.moreText
} else {
binding.mainActivitySignMoreInfoGroup.visibility = View.GONE
}
}
override fun onErrorClick(signBean: SignBean) {
rightController.currentDestination?.let {
if (it.id == R.id.RightEmptyFragment) {
val bundle = Bundle()
bundle.putParcelable("SignBean", signBean)
bundle.putBoolean("AutoSave", true)
rightController.navigate(R.id.EvaluationResultFragment, bundle)
}
}
}
override fun onHideMoreInfoView() {
binding.mainActivitySignMoreInfoGroup.visibility = View.GONE
}
})
} }
/** /**
@ -148,11 +175,9 @@ class MainActivity : BaseActivity() {
when (event?.action) { when (event?.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
voiceOnTouchStart()//Do Something voiceOnTouchStart()//Do Something
Log.e("qj", "voiceOnTouchStart")
} }
MotionEvent.ACTION_UP -> { MotionEvent.ACTION_UP -> {
voiceOnTouchStop()//Do Something voiceOnTouchStop()//Do Something
Log.e("qj", "voiceOnTouchStop")
} }
} }
v?.onTouchEvent(event) ?: true v?.onTouchEvent(event) ?: true
@ -203,9 +228,9 @@ class MainActivity : BaseActivity() {
} }
//监听地图中点变化 //监听地图中点变化
viewModel.liveDataCenterPoint.observe(this) { viewModel.liveDataCenterPoint.observe(this) {
Log.e("qj","${it.longitude}") Log.e("qj", "${it.longitude}")
try{ try {
if(it!=null&&it.longitude!=null&&it.latitude!=null){ if (it != null && it.longitude != null && it.latitude != null) {
binding.mainActivityGeometry.text = "经纬度:${ binding.mainActivityGeometry.text = "经纬度:${
BigDecimal(it.longitude).setScale( BigDecimal(it.longitude).setScale(
7, 7,
@ -213,8 +238,8 @@ class MainActivity : BaseActivity() {
) )
},${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}" },${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}"
} }
}catch (e:Exception){ } catch (e: Exception) {
Log.e("qj","异常") Log.e("qj", "异常 $e")
} }
} }
@ -246,7 +271,7 @@ class MainActivity : BaseActivity() {
val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null) val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null)
val inputDialog = MaterialAlertDialogBuilder( val inputDialog = MaterialAlertDialogBuilder(
this this
).setTitle("标记原因").setView(view) ).setTitle("坐标定位").setView(view)
var editText = view.findViewById<EditText>(R.id.dialog_edittext) var editText = view.findViewById<EditText>(R.id.dialog_edittext)
editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567" editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567"
inputDialog.setNegativeButton("取消") { dialog, _ -> inputDialog.setNegativeButton("取消") { dialog, _ ->
@ -258,7 +283,7 @@ class MainActivity : BaseActivity() {
val parts = editText.text.toString().split("[,\\s]".toRegex()) val parts = editText.text.toString().split("[,\\s]".toRegex())
if (parts.size == 2) { if (parts.size == 2) {
val x = parts[0].toDouble() val x = parts[0].toDouble()
val y = parts[0].toDouble() val y = parts[1].toDouble()
mapController.animationHandler.animationByLatLon(y, x) mapController.animationHandler.animationByLatLon(y, x)
} else { } else {
Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show() Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show()
@ -413,6 +438,12 @@ class MainActivity : BaseActivity() {
*/ */
fun onSwitchSheet() { fun onSwitchSheet() {
if (binding.mainActivityBottomSheetGroup.visibility == View.VISIBLE) { if (binding.mainActivityBottomSheetGroup.visibility == View.VISIBLE) {
leftFragment?.let {
supportFragmentManager.beginTransaction().remove(it).commit()
leftFragment = null
binding.mainActivityLeftFragment.visibility = View.GONE
}
binding.mainActivityBottomSheetGroup.visibility = View.GONE binding.mainActivityBottomSheetGroup.visibility = View.GONE
} else { } else {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
@ -472,10 +503,18 @@ class MainActivity : BaseActivity() {
.replace(R.id.main_activity_left_fragment, leftFragment!!).commit() .replace(R.id.main_activity_left_fragment, leftFragment!!).commit()
} }
} }
/**
* 路径规划
*/
fun onClickRouteFragment() {
Toast.makeText(this, "功能开发中", Toast.LENGTH_SHORT).show()
}
/** /**
* 打开离线地图 * 打开离线地图
*/ */
fun onClickOfflineMapFragment(){ fun onClickOfflineMapFragment() {
if (leftFragment !is OfflineMapFragment) { if (leftFragment !is OfflineMapFragment) {
if (leftFragment == null) { if (leftFragment == null) {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE

View File

@ -183,11 +183,10 @@ class MainViewModel @Inject constructor(
location.tiley = y location.tiley = y
} }
} }
Log.e("jingo", "定位点插入 ${location.longitude}")
location.groupId = uuid location.groupId = uuid
try { try {
location.timeStamp = DateTimeUtil.getTime(location.time).toString() location.timeStamp = DateTimeUtil.getTime(location.time).toString()
}catch (e: Exception){ } catch (e: Exception) {
} }
traceDataBase.niLocationDao.insert(location) traceDataBase.niLocationDao.insert(location)
@ -244,7 +243,8 @@ class MainViewModel @Inject constructor(
geometry = element.geometry, geometry = element.geometry,
name = SignUtil.getSignNameText(element), name = SignUtil.getSignNameText(element),
bottomRightText = SignUtil.getSignBottomRightText(element), bottomRightText = SignUtil.getSignBottomRightText(element),
elementCode = element.code elementCode = element.code,
moreText = SignUtil.getMoreInfoText(element)
) )
when (element.code) { when (element.code) {
@ -292,9 +292,8 @@ class MainViewModel @Inject constructor(
speakMode?.speakText(speechText) speakMode?.speakText(speechText)
} }
linkIdCache = linkId ?: "" linkIdCache = linkId ?: ""
Log.e("jingo", "自动捕捉数据 共${signList.size}")
} }
}else{ } else {
mapController.lineHandler.removeLine() mapController.lineHandler.removeLine()
linkIdCache = "" linkIdCache = ""
} }

View File

@ -1,6 +1,7 @@
package com.navinfo.omqs.ui.activity.map package com.navinfo.omqs.ui.activity.map
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.navinfo.omqs.R import com.navinfo.omqs.R
import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.bean.SignBean
@ -8,8 +9,19 @@ import com.navinfo.omqs.databinding.AdapterSignBinding
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder import com.navinfo.omqs.ui.other.BaseViewHolder
class SignAdapter(private var itemListener: ((Int, Boolean, SignBean) -> Unit?)? = null) : interface OnSignAdapterClickListener {
fun onItemClick(signBean: SignBean)
fun onMoreInfoClick(selectTag: String, tag: String, signBean: SignBean)
fun onErrorClick(signBean: SignBean)
fun onHideMoreInfoView()
}
class SignAdapter(private var listener: OnSignAdapterClickListener?) :
BaseRecyclerViewAdapter<SignBean>() { BaseRecyclerViewAdapter<SignBean>() {
/**
* 选中的详细信息按钮的tag标签
*/
private var selectMoreInfoTag: String = ""
override fun getItemViewRes(position: Int): Int { override fun getItemViewRes(position: Int): Int {
return R.layout.adapter_sign return R.layout.adapter_sign
} }
@ -22,17 +34,40 @@ class SignAdapter(private var itemListener: ((Int, Boolean, SignBean) -> Unit?)?
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) { override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
val bd = holder.viewBinding as AdapterSignBinding val bd = holder.viewBinding as AdapterSignBinding
val item = data[position] val item = data[position]
if (item.iconId != 0) if (item.iconId != 0) bd.signMainIconBg.setImageResource(item.iconId)
bd.signMainIconBg.setImageResource(item.iconId)
bd.signMainIcon.text = item.iconText bd.signMainIcon.text = item.iconText
bd.signBottomText.text = item.name bd.signBottomText.text = item.name
bd.signMainFastError.setOnClickListener{ holder.tag = item.name + position
itemListener?.invoke(position, true,item) //点击错误按钮
bd.signMainFastError.setOnClickListener {
listener?.onErrorClick(item)
} }
bd.signBottomRightText.text = item.bottomRightText bd.signBottomRightText.text = item.bottomRightText
bd.root.setOnClickListener { bd.root.setOnClickListener {
itemListener?.invoke(position, false,item) listener?.onItemClick(item)
} }
if (item.moreText.isNotEmpty()) {
bd.signMainInfo.visibility = View.VISIBLE
//点击更多信息按钮
bd.signMainInfo.setOnClickListener {
listener?.onMoreInfoClick(selectMoreInfoTag, holder.tag, item)
selectMoreInfoTag = holder.tag
}
} else bd.signMainInfo.visibility = View.GONE
} }
override fun refreshData(newData: List<SignBean>) {
super.refreshData(newData)
for (i in newData.indices) {
if (selectMoreInfoTag == newData[i].name + i) {
return
}
}
listener?.onHideMoreInfoView()
}
} }

View File

@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.View.OnClickListener import android.view.View.OnClickListener
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.transition.AutoTransition import androidx.transition.AutoTransition
import androidx.transition.Scene import androidx.transition.Scene
@ -64,14 +65,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
override fun onTransitionStart(transition: androidx.transition.Transition) { override fun onTransitionStart(transition: androidx.transition.Transition) {
sceneFlag = true sceneFlag = true
if (mFragment != null) { if (mFragment != null) {
Log.e("jingo", "动画开始B mFragment 不为null")
childFragmentManager.beginTransaction().remove(mFragment!!).commit() childFragmentManager.beginTransaction().remove(mFragment!!).commit()
mFragment = null mFragment = null
} }
} }
override fun onTransitionEnd(transition: androidx.transition.Transition) { override fun onTransitionEnd(transition: androidx.transition.Transition) {
Log.e("jingo", "动画A结束")
initOnClickListener() initOnClickListener()
} }
@ -89,7 +88,6 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
override fun onTransitionStart(transition: androidx.transition.Transition) { override fun onTransitionStart(transition: androidx.transition.Transition) {
sceneFlag = false sceneFlag = false
if (mFragment != null) { if (mFragment != null) {
Log.e("jingo", "动画开始A mFragment 不为null")
childFragmentManager.beginTransaction().replace(fragmentId, mFragment!!) childFragmentManager.beginTransaction().replace(fragmentId, mFragment!!)
.commit() .commit()
} }
@ -156,6 +154,11 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
*/ */
binding.consoleRoot.findViewById<View>(R.id.console_task_bg)?.setOnClickListener(this) binding.consoleRoot.findViewById<View>(R.id.console_task_bg)?.setOnClickListener(this)
binding.consoleRoot.findViewById<View>(R.id.console_task_icon_bg)?.setOnClickListener(this) binding.consoleRoot.findViewById<View>(R.id.console_task_icon_bg)?.setOnClickListener(this)
/**
* 路径规划
*/
binding.consoleRoot.findViewById<View>(R.id.console_route_bg)?.setOnClickListener(this)
binding.consoleRoot.findViewById<View>(R.id.console_route_icon_bg)?.setOnClickListener(this)
} }
override fun onDestroy() { override fun onDestroy() {
@ -235,6 +238,9 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
(a as MainActivity).onClickResFragment() (a as MainActivity).onClickResFragment()
} }
} }
/**
* 任务列表
*/
R.id.console_task_icon_bg, R.id.console_task_bg -> { R.id.console_task_icon_bg, R.id.console_task_bg -> {
activity?.let { a -> activity?.let { a ->
a.supportFragmentManager.beginTransaction().remove(this).commit() a.supportFragmentManager.beginTransaction().remove(this).commit()
@ -242,6 +248,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
} }
} }
/**
* 路径规划
*/
R.id.console_route_bg, R.id.console_route_icon_bg -> {
Toast.makeText(requireContext(), "功能开发中", Toast.LENGTH_SHORT).show()
}
else -> {} else -> {}
} }
} }

View File

@ -98,17 +98,14 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
when (event?.action) { when (event?.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
voiceOnTouchStart()//Do Something voiceOnTouchStart()//Do Something
Log.e("qj", "voiceOnTouchStart")
} }
MotionEvent.ACTION_UP -> { MotionEvent.ACTION_UP -> {
voiceOnTouchStop()//Do Something voiceOnTouchStop()//Do Something
Log.e("qj", "ACTION_UP")
} }
MotionEvent.ACTION_CANCEL -> { MotionEvent.ACTION_CANCEL -> {
voiceOnTouchStop()//Do Something voiceOnTouchStop()//Do Something
Log.e("qj", "ACTION_CANCEL")
} }
} }
true true

View File

@ -97,7 +97,6 @@ class EvaluationResultViewModel @Inject constructor(
init { init {
liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString()) liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString())
Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}")
viewModelScope.launch { viewModelScope.launch {
mapController.onMapClickFlow.collect { mapController.onMapClickFlow.collect {
liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText()
@ -111,7 +110,6 @@ class EvaluationResultViewModel @Inject constructor(
override fun onCleared() { override fun onCleared() {
super.onCleared() super.onCleared()
Log.e("jingo", "EvaluationResultViewModel 销毁了 ${hashCode()}")
mapController.markerHandle.removeMarker(markerTitle) mapController.markerHandle.removeMarker(markerTitle)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mapController.lineHandler.removeLine() mapController.lineHandler.removeLine()
@ -223,7 +221,6 @@ class EvaluationResultViewModel @Inject constructor(
* 获取问题环节列表和初步问题 * 获取问题环节列表和初步问题
*/ */
fun getProblemLinkList() { fun getProblemLinkList() {
Log.e("jingo", "getProblemLinkList S")
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val list = roomAppDatabase.getScRootCauseAnalysisDao().findAllData() val list = roomAppDatabase.getScRootCauseAnalysisDao().findAllData()
list?.let { tl -> list?.let { tl ->
@ -242,11 +239,9 @@ class EvaluationResultViewModel @Inject constructor(
} }
if (liveDataQsRecordBean.value!!.problemLink.isEmpty()) { if (liveDataQsRecordBean.value!!.problemLink.isEmpty()) {
liveDataQsRecordBean.value!!.problemLink = middleList[0] liveDataQsRecordBean.value!!.problemLink = middleList[0]
Log.e("jingo", "getProblemLinkList ${middleList[0]}")
} }
if (liveDataQsRecordBean.value!!.cause.isEmpty()) { if (liveDataQsRecordBean.value!!.cause.isEmpty()) {
liveDataQsRecordBean.value!!.cause = rightList[0].text liveDataQsRecordBean.value!!.cause = rightList[0].text
Log.e("jingo", "getProblemLinkList ${rightList[0].text}")
} }
liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) liveDataQsRecordBean.postValue(liveDataQsRecordBean.value)
// liveDataMiddleTypeList.postValue(middleList) // liveDataMiddleTypeList.postValue(middleList)
@ -254,14 +249,12 @@ class EvaluationResultViewModel @Inject constructor(
} }
} }
} }
Log.e("jingo", "getProblemLinkList E")
} }
/** /**
* 获取问题类型列表和问题现象 * 获取问题类型列表和问题现象
*/ */
private suspend fun getProblemList(classType: String) { private suspend fun getProblemList(classType: String) {
Log.e("jingo", "getProblemList S")
val typeList = roomAppDatabase.getScProblemTypeDao().findProblemTypeList(classType) val typeList = roomAppDatabase.getScProblemTypeDao().findProblemTypeList(classType)
typeList?.let { tl -> typeList?.let { tl ->
if (tl.isNotEmpty()) { if (tl.isNotEmpty()) {
@ -279,18 +272,15 @@ class EvaluationResultViewModel @Inject constructor(
} }
if (liveDataQsRecordBean.value!!.problemType.isEmpty()) { if (liveDataQsRecordBean.value!!.problemType.isEmpty()) {
liveDataQsRecordBean.value!!.problemType = typeTitleList[0] liveDataQsRecordBean.value!!.problemType = typeTitleList[0]
Log.e("jingo", "getProblemList ${typeTitleList[0]}")
} }
// liveDataMiddleTypeList.postValue(typeTitleList) // liveDataMiddleTypeList.postValue(typeTitleList)
if (liveDataQsRecordBean.value!!.phenomenon.isEmpty()) { if (liveDataQsRecordBean.value!!.phenomenon.isEmpty()) {
liveDataQsRecordBean.value!!.phenomenon = phenomenonRightList[0].text liveDataQsRecordBean.value!!.phenomenon = phenomenonRightList[0].text
Log.e("jingo", "getProblemList ${phenomenonRightList[0].text}")
} }
liveDataQsRecordBean.postValue(liveDataQsRecordBean.value) liveDataQsRecordBean.postValue(liveDataQsRecordBean.value)
liveDataRightTypeList.postValue(phenomenonRightList) liveDataRightTypeList.postValue(phenomenonRightList)
} }
} }
Log.e("jingo", "getProblemList E")
} }
/** /**
@ -341,7 +331,6 @@ class EvaluationResultViewModel @Inject constructor(
mDialog.dismiss() mDialog.dismiss()
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
realm.executeTransaction { realm.executeTransaction {
val objects = it.where(QsRecordBean::class.java) val objects = it.where(QsRecordBean::class.java)
.equalTo("id", liveDataQsRecordBean.value?.id).findFirst() .equalTo("id", liveDataQsRecordBean.value?.id).findFirst()

View File

@ -34,7 +34,6 @@ class PhenomenonFragment :
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
_binding = FragmentPhenomenonBinding.inflate(inflater, container, false) _binding = FragmentPhenomenonBinding.inflate(inflater, container, false)
Log.e("jingo", "PhenomenonFragment onCreateView ${hashCode()}")
return binding.root return binding.root
} }

View File

@ -23,7 +23,7 @@ class LayerManagerViewModel() : ViewModel() {
} }
fun saveLayerConfigList(context: Context, listData: List<ImportConfig>) { fun saveLayerConfigList(context: Context, listData: List<ImportConfig>) {
SPStaticUtils.put(Constant.EVENT_LAYER_MANAGER_CHANGE, gson.toJson(listData)) Constant.LAYER_CONFIG_LIST = listData
// 发送新的配置数据 // 发送新的配置数据
viewModelScope.launch { viewModelScope.launch {
FlowEventBus.post(Constant.EVENT_LAYER_MANAGER_CHANGE, listData) FlowEventBus.post(Constant.EVENT_LAYER_MANAGER_CHANGE, listData)

View File

@ -34,15 +34,12 @@ class OfflineMapCityListAdapter(
val cityBean = data[it.tag as Int] val cityBean = data[it.tag as Int]
when (cityBean.status) { when (cityBean.status) {
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.ERROR -> { FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.ERROR -> {
Log.e("jingo", "开始下载 ${cityBean.status}")
downloadManager.start(cityBean.id) downloadManager.start(cityBean.id)
} }
FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> { FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> {
Log.e("jingo", "暂停 ${cityBean.status}")
downloadManager.pause(cityBean.id) downloadManager.pause(cityBean.id)
} }
else -> { else -> {
Log.e("jingo", "暂停 ${cityBean.status}")
} }
} }
} }
@ -85,7 +82,6 @@ class OfflineMapCityListAdapter(
if (id == holder.tag) { if (id == holder.tag) {
val binding: AdapterOfflineMapCityBinding = val binding: AdapterOfflineMapCityBinding =
holder.viewBinding as AdapterOfflineMapCityBinding holder.viewBinding as AdapterOfflineMapCityBinding
Log.e("jingo", "进度条更新 $id ${bean.id} ${holder.tag} ")
changeViews(binding, bean) changeViews(binding, bean)
} }
} }
@ -95,7 +91,6 @@ class OfflineMapCityListAdapter(
private fun changeViews(binding: AdapterOfflineMapCityBinding, cityBean: OfflineMapCityBean) { private fun changeViews(binding: AdapterOfflineMapCityBinding, cityBean: OfflineMapCityBean) {
Log.e("jingo", "changeViews ${cityBean.status}")
binding.offlineMapProgress.progress = binding.offlineMapProgress.progress =
(cityBean.currentSize * 100 / cityBean.fileSize).toInt() (cityBean.currentSize * 100 / cityBean.fileSize).toInt()
when (cityBean.status) { when (cityBean.status) {

View File

@ -115,11 +115,17 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) :
viewModel.readRealmData() viewModel.readRealmData()
// 定位到指定位置 // 定位到指定位置
niMapController.mMapView.vtmMap.animator() niMapController.mMapView.vtmMap.animator()
.animateTo(GeoPoint(40.031657799200346, 116.32207834810715)) .animateTo(GeoPoint( 39.80392140200183, 116.51446703352337 ))
}
R.id.personal_center_menu_task_list -> {
findNavController().navigate(R.id.TaskManagerFragment)
} }
// R.id.personal_center_menu_task_list -> {
// findNavController().navigate(R.id.TaskManagerFragment)
// }
// R.id.personal_center_menu_qs_record_list -> {
// findNavController().navigate(R.id.QsRecordListFragment)
// }
// R.id.personal_center_menu_layer_manager -> { // 图层管理
// findNavController().navigate(R.id.QsLayerManagerFragment)
// }
R.id.personal_center_menu_qs_record_list -> { R.id.personal_center_menu_qs_record_list -> {
findNavController().navigate(R.id.QsRecordListFragment) findNavController().navigate(R.id.QsRecordListFragment)
} }

View File

@ -26,7 +26,6 @@ class QsRecordListViewModel @Inject constructor(
fun getList(context: Context) { fun getList(context: Context) {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
Log.e("jingo","realm hashCOde ${realm.hashCode()}")
val objects = realm.where(QsRecordBean::class.java).findAll() val objects = realm.where(QsRecordBean::class.java).findAll()
liveDataQSList.postValue(realm.copyFromRealm(objects)) liveDataQSList.postValue(realm.copyFromRealm(objects))
} }

View File

@ -39,17 +39,14 @@ class TaskListAdapter(
if (taskBean.hadLinkDvoList.isNotEmpty()) { if (taskBean.hadLinkDvoList.isNotEmpty()) {
when (taskBean.status) { when (taskBean.status) {
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> { FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> {
Log.e("jingo", "开始下载 ${taskBean.status}")
downloadManager.start(taskBean.id) downloadManager.start(taskBean.id)
} }
FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> { FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> {
Log.e("jingo", "暂停 ${taskBean.status}")
downloadManager.pause(taskBean.id) downloadManager.pause(taskBean.id)
} }
else -> { else -> {
Log.e("jingo", "暂停 ${taskBean.status}")
} }
} }
} else { } else {
@ -61,7 +58,6 @@ class TaskListAdapter(
private val uploadBtnClick = View.OnClickListener() { private val uploadBtnClick = View.OnClickListener() {
if (it.tag != null) { if (it.tag != null) {
val taskBean = data[it.tag as Int] val taskBean = data[it.tag as Int]
Log.e("jingo", "开始上传 ${taskBean.syncStatus}")
if (taskBean.hadLinkDvoList.isNotEmpty()) { if (taskBean.hadLinkDvoList.isNotEmpty()) {
when (taskBean.syncStatus) { when (taskBean.syncStatus) {
FileUploadStatus.NONE, FileUploadStatus.UPLOADING, FileUploadStatus.ERROR, FileUploadStatus.WAITING -> { FileUploadStatus.NONE, FileUploadStatus.UPLOADING, FileUploadStatus.ERROR, FileUploadStatus.WAITING -> {

View File

@ -87,12 +87,30 @@ class SignUtil {
*/ */
fun getSignBottomRightText(data: RenderEntity): String { fun getSignBottomRightText(data: RenderEntity): String {
return when (data.code) { return when (data.code) {
//点限速 //条件点限速
4003 -> getConditionLimitText(data) 4003 -> getConditionLimitText(data)
else -> "" else -> ""
} }
} }
/**
* 更多信息展示文字
*/
fun getMoreInfoText(data: RenderEntity): String {
return when (data.code) {
//条件点限速
4003 -> getConditionLimitMoreInfoText(data)
else -> ""
}
}
/**
* 条件点限速更多信息
*/
private fun getConditionLimitMoreInfoText(data: RenderEntity): String {
return data.properties["validPeriod"].toString()
}
/** /**
* 条件点限速文字 * 条件点限速文字
*/ */
@ -170,7 +188,7 @@ class SignUtil {
private fun getSpeedLimitIcon(data: RenderEntity): Int { private fun getSpeedLimitIcon(data: RenderEntity): Int {
try { try {
//限速标志 0 限速开始 1 限速解除 //限速标志 0 限速开始 1 限速解除
return when (data.properties["speed_flag"]) { return when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_speed_limit_off "1" -> return R.drawable.icon_speed_limit_off
else -> return R.drawable.icon_speed_limit else -> return R.drawable.icon_speed_limit
} }
@ -186,7 +204,7 @@ class SignUtil {
private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int { private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int {
try { try {
//限速标志 0 限速开始 1 限速解除 //限速标志 0 限速开始 1 限速解除
return when (data.properties["speed_flag"]) { return when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_conditional_speed_limit_off "1" -> return R.drawable.icon_conditional_speed_limit_off
else -> return R.drawable.icon_conditional_speed_limit else -> return R.drawable.icon_conditional_speed_limit
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -3,10 +3,10 @@
android:shape="rectangle"> android:shape="rectangle">
<corners <corners
android:bottomLeftRadius="4dp" android:bottomLeftRadius="8dp"
android:bottomRightRadius="4dp" android:bottomRightRadius="8dp"
android:topLeftRadius="4dp" android:topLeftRadius="8dp"
android:topRightRadius="4dp" /> android:topRightRadius="8dp" />
<solid android:color="#C42E303B" /> <solid android:color="#C42E303B" />

View File

@ -63,6 +63,61 @@
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/main_activity_sign_more_info_bg"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_marginLeft="260dp"
android:layout_marginTop="40dp"
android:background="@drawable/main_sign_moreinfo_bg"
android:minHeight="140dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_activity_top_sign_recyclerview" />
<TextView
android:id="@+id/main_activity_sign_more_info_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:drawableLeft="@drawable/icon_main_moreinfo_text_left"
android:drawablePadding="4dp"
android:text="条件点限速"
android:textColor="@color/orange"
app:layout_constraintLeft_toLeftOf="@id/main_activity_sign_more_info_bg"
app:layout_constraintTop_toTopOf="@id/main_activity_sign_more_info_bg" />
<TextView
android:id="@+id/main_activity_sign_more_info_text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:text="条件点限速"
android:textColor="@color/white"
app:layout_constraintRight_toRightOf="@id/main_activity_sign_more_info_bg"
app:layout_constraintTop_toBottomOf="@id/main_activity_sign_more_info_title" />
<TextView
android:id="@+id/main_activity_sign_more_info_text2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:singleLine="false"
android:text="条件点限速"
android:textColor="@color/white"
app:layout_constraintLeft_toLeftOf="@id/main_activity_sign_more_info_bg"
app:layout_constraintRight_toRightOf="@id/main_activity_sign_more_info_bg"
app:layout_constraintTop_toBottomOf="@id/main_activity_sign_more_info_text1" />
<androidx.constraintlayout.widget.Group
android:id="@+id/main_activity_sign_more_info_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="main_activity_sign_more_info_bg,main_activity_sign_more_info_text2,main_activity_sign_more_info_text1,main_activity_sign_more_info_title" />
<androidx.constraintlayout.helper.widget.Flow <androidx.constraintlayout.helper.widget.Flow
android:id="@+id/main_activity_flow" android:id="@+id/main_activity_flow"
android:layout_width="0dp" android:layout_width="0dp"
@ -408,8 +463,8 @@
<ImageView <ImageView
android:id="@+id/main_bottom_offline_map" android:id="@+id/main_bottom_offline_map"
style="@style/main_activity_bottom_sheet_icon" style="@style/main_activity_bottom_sheet_icon"
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
android:background="@drawable/icon_main_bottom_offline_map" android:background="@drawable/icon_main_bottom_offline_map"
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
app:layout_constraintBottom_toTopOf="@id/main_bottom_offline_map_text" app:layout_constraintBottom_toTopOf="@id/main_bottom_offline_map_text"
app:layout_constraintLeft_toRightOf="@id/main_bottom_home" app:layout_constraintLeft_toRightOf="@id/main_bottom_home"
app:layout_constraintRight_toLeftOf="@id/main_bottom_route" app:layout_constraintRight_toLeftOf="@id/main_bottom_route"
@ -420,10 +475,10 @@
android:id="@+id/main_bottom_offline_map_text" android:id="@+id/main_bottom_offline_map_text"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
android:text="离线地图" android:text="离线地图"
android:textColor="@color/blue" android:textColor="@color/blue"
android:textSize="10sp" android:textSize="10sp"
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg"
app:layout_constraintLeft_toLeftOf="@id/main_bottom_offline_map" app:layout_constraintLeft_toLeftOf="@id/main_bottom_offline_map"
app:layout_constraintRight_toRightOf="@id/main_bottom_offline_map" app:layout_constraintRight_toRightOf="@id/main_bottom_offline_map"
@ -435,6 +490,7 @@
android:background="@drawable/icon_main_bottom_route" android:background="@drawable/icon_main_bottom_route"
app:layout_constraintBottom_toTopOf="@id/main_bottom_route_text" app:layout_constraintBottom_toTopOf="@id/main_bottom_route_text"
app:layout_constraintLeft_toRightOf="@id/main_bottom_offline_map" app:layout_constraintLeft_toRightOf="@id/main_bottom_offline_map"
android:onClick="@{()->mainActivity.onClickRouteFragment()}"
app:layout_constraintRight_toRightOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintRight_toRightOf="@id/main_activity_bottom_sheet_bg"
app:layout_constraintTop_toTopOf="@id/main_bottom_task" app:layout_constraintTop_toTopOf="@id/main_bottom_task"
app:layout_constraintVertical_chainStyle="packed" /> app:layout_constraintVertical_chainStyle="packed" />
@ -446,6 +502,7 @@
android:text="路径规划" android:text="路径规划"
android:textColor="@color/blue" android:textColor="@color/blue"
android:textSize="10sp" android:textSize="10sp"
android:onClick="@{()->mainActivity.onClickRouteFragment()}"
app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg"
app:layout_constraintLeft_toLeftOf="@id/main_bottom_route" app:layout_constraintLeft_toLeftOf="@id/main_bottom_route"
app:layout_constraintRight_toRightOf="@id/main_bottom_route" app:layout_constraintRight_toRightOf="@id/main_bottom_route"
@ -455,7 +512,7 @@
android:id="@+id/main_activity_bottom_sheet_group" android:id="@+id/main_activity_bottom_sheet_group"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="visible" android:visibility="gone"
app:constraint_referenced_ids=" app:constraint_referenced_ids="
main_bottom_route_text, main_bottom_route_text,
main_bottom_offline_map_text, main_bottom_offline_map_text,
@ -476,5 +533,4 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@ -46,10 +46,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/sign_bottom_text" android:layout_alignTop="@id/sign_bottom_text"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp" android:layout_marginRight="15dp"
android:gravity="center" android:gravity="center"
android:text="其他信息" android:text="其他信息"
android:layout_alignRight="@id/sign_main_bg"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" /> android:textSize="14sp" />

View File

@ -97,7 +97,6 @@
<TextView <TextView
android:id="@+id/task_progress_text" android:id="@+id/task_progress_text"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/task_download_btn" android:layout_alignTop="@id/task_download_btn"

View File

@ -5,7 +5,6 @@
android:id="@+id/console_layout" android:id="@+id/console_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/console_bg"
tools:context=".ui.fragment.console.ConsoleFragment"> tools:context=".ui.fragment.console.ConsoleFragment">
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline

View File

@ -128,12 +128,16 @@
android:src="@drawable/icon_console_task" android:src="@drawable/icon_console_task"
app:layout_constraintBottom_toBottomOf="@id/console_task_bg" app:layout_constraintBottom_toBottomOf="@id/console_task_bg"
app:layout_constraintLeft_toLeftOf="@id/console_task_bg" app:layout_constraintLeft_toLeftOf="@id/console_task_bg"
app:layout_constraintTop_toTopOf="@id/console_task_bg" /> app:layout_constraintRight_toLeftOf="@id/console_task_icon_text"
app:layout_constraintTop_toTopOf="@id/console_task_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_task_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="测评任务" android:text="测评任务"
app:layout_constraintBottom_toBottomOf="@id/console_task_bg" app:layout_constraintBottom_toBottomOf="@id/console_task_bg"
app:layout_constraintLeft_toRightOf="@id/console_task_icon"
app:layout_constraintRight_toRightOf="@id/console_task_bg" app:layout_constraintRight_toRightOf="@id/console_task_bg"
app:layout_constraintTop_toTopOf="@id/console_task_bg" /> app:layout_constraintTop_toTopOf="@id/console_task_bg" />
@ -154,12 +158,16 @@
android:src="@drawable/icon_console_evaluation" android:src="@drawable/icon_console_evaluation"
app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg" app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg"
app:layout_constraintLeft_toLeftOf="@id/console_evaluation_bg" app:layout_constraintLeft_toLeftOf="@id/console_evaluation_bg"
app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" /> app:layout_constraintRight_toLeftOf="@id/console_evaluation_icon_text"
app:layout_constraintTop_toTopOf="@id/console_evaluation_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_evaluation_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="测评结果" android:text="测评结果"
app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg" app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg"
app:layout_constraintLeft_toRightOf="@id/console_evaluation_icon"
app:layout_constraintRight_toRightOf="@id/console_evaluation_bg" app:layout_constraintRight_toRightOf="@id/console_evaluation_bg"
app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" /> app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" />
@ -180,12 +188,16 @@
android:src="@drawable/icon_console_offline_map" android:src="@drawable/icon_console_offline_map"
app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg" app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg"
app:layout_constraintLeft_toLeftOf="@id/console_offline_map_bg" app:layout_constraintLeft_toLeftOf="@id/console_offline_map_bg"
app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" /> app:layout_constraintRight_toLeftOf="@id/console_offline_map_icon_text"
app:layout_constraintTop_toTopOf="@id/console_offline_map_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_offline_map_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="离线地图" android:text="离线地图"
app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg" app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg"
app:layout_constraintLeft_toRightOf="@id/console_offline_map_icon"
app:layout_constraintRight_toRightOf="@id/console_offline_map_bg" app:layout_constraintRight_toRightOf="@id/console_offline_map_bg"
app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" /> app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" />
@ -205,12 +217,16 @@
android:src="@drawable/icon_console_route" android:src="@drawable/icon_console_route"
app:layout_constraintBottom_toBottomOf="@id/console_route_bg" app:layout_constraintBottom_toBottomOf="@id/console_route_bg"
app:layout_constraintLeft_toLeftOf="@id/console_route_bg" app:layout_constraintLeft_toLeftOf="@id/console_route_bg"
app:layout_constraintTop_toTopOf="@id/console_route_bg" /> app:layout_constraintRight_toLeftOf="@id/console_route_icon_text"
app:layout_constraintTop_toTopOf="@id/console_route_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_route_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="路径规划" android:text="路径规划"
app:layout_constraintBottom_toBottomOf="@id/console_route_bg" app:layout_constraintBottom_toBottomOf="@id/console_route_bg"
app:layout_constraintLeft_toRightOf="@id/console_route_icon"
app:layout_constraintRight_toRightOf="@id/console_route_bg" app:layout_constraintRight_toRightOf="@id/console_route_bg"
app:layout_constraintTop_toTopOf="@id/console_route_bg" /> app:layout_constraintTop_toTopOf="@id/console_route_bg" />
@ -232,12 +248,16 @@
android:src="@drawable/icon_console_layer_setting" android:src="@drawable/icon_console_layer_setting"
app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg" app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg"
app:layout_constraintLeft_toLeftOf="@id/console_layer_setting_bg" app:layout_constraintLeft_toLeftOf="@id/console_layer_setting_bg"
app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" /> app:layout_constraintRight_toLeftOf="@id/console_layer_setting_icon_text"
app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_layer_setting_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="图层设置" android:text="图层设置"
app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg" app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg"
app:layout_constraintLeft_toRightOf="@id/console_layer_setting_icon"
app:layout_constraintRight_toRightOf="@id/console_layer_setting_bg" app:layout_constraintRight_toRightOf="@id/console_layer_setting_bg"
app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" /> app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" />
@ -257,12 +277,16 @@
android:src="@drawable/icon_console_personal_center" android:src="@drawable/icon_console_personal_center"
app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg" app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg"
app:layout_constraintLeft_toLeftOf="@id/console_personal_center_bg" app:layout_constraintLeft_toLeftOf="@id/console_personal_center_bg"
app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" /> app:layout_constraintRight_toLeftOf="@id/console_personal_center_icon_text"
app:layout_constraintTop_toTopOf="@id/console_personal_center_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView <TextView
android:id="@+id/console_personal_center_icon_text"
style="@style/console_on_left_bottom_text" style="@style/console_on_left_bottom_text"
android:text="个人中心" android:text="个人中心"
app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg" app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg"
app:layout_constraintLeft_toRightOf="@id/console_personal_center_icon"
app:layout_constraintRight_toRightOf="@id/console_personal_center_bg" app:layout_constraintRight_toRightOf="@id/console_personal_center_bg"
app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" /> app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" />
@ -469,7 +493,7 @@
app:layout_constraintLeft_toLeftOf="@id/console_track_bg" app:layout_constraintLeft_toLeftOf="@id/console_track_bg"
app:layout_constraintRight_toLeftOf="@id/console_track_text" app:layout_constraintRight_toLeftOf="@id/console_track_text"
app:layout_constraintTop_toTopOf="@id/console_track_bg" app:layout_constraintTop_toTopOf="@id/console_track_bg"
app:layout_constraintVertical_chainStyle="spread" /> app:layout_constraintVertical_chainStyle="packed" />
<ImageView <ImageView
android:id="@+id/console_track_icon" android:id="@+id/console_track_icon"

View File

@ -46,8 +46,8 @@
app:tabGravity="center" app:tabGravity="center"
app:tabIndicator="@null" app:tabIndicator="@null"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
app:tabMaxWidth="150dp" app:tabMaxWidth="110dp"
app:tabMinWidth="150dp" app:tabMinWidth="110dp"
app:tabMode="scrollable" app:tabMode="scrollable"
app:tabPaddingEnd="6dp" app:tabPaddingEnd="6dp"
app:tabPaddingStart="6dp" app:tabPaddingStart="6dp"

View File

@ -45,8 +45,8 @@
app:tabGravity="center" app:tabGravity="center"
app:tabIndicator="@null" app:tabIndicator="@null"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
app:tabMaxWidth="150dp" app:tabMaxWidth="110dp"
app:tabMinWidth="150dp" app:tabMinWidth="110dp"
app:tabMode="scrollable" app:tabMode="scrollable"
app:tabPaddingEnd="6dp" app:tabPaddingEnd="6dp"
app:tabPaddingStart="6dp" app:tabPaddingStart="6dp"

View File

@ -33,18 +33,18 @@
<group android:checkableBehavior="single"> <group android:checkableBehavior="single">
<item android:title="小标题"> <item android:title="小标题">
<menu> <menu>
<item <!-- <item-->
android:id="@+id/personal_center_menu_task_list" <!-- android:id="@+id/personal_center_menu_task_list"-->
android:icon="@drawable/ic_baseline_format_list_bulleted_24" <!-- android:icon="@drawable/ic_baseline_format_list_bulleted_24"-->
android:title="任务列表" /> <!-- android:title="任务列表" />-->
<item <!-- <item-->
android:id="@+id/personal_center_menu_qs_record_list" <!-- android:id="@+id/personal_center_menu_qs_record_list"-->
android:icon="@drawable/ic_baseline_playlist_add_check_24" <!-- android:icon="@drawable/ic_baseline_playlist_add_check_24"-->
android:title="测评结果" /> <!-- android:title="测评结果" />-->
<item <!-- <item-->
android:id="@+id/personal_center_menu_layer_manager" <!-- android:id="@+id/personal_center_menu_layer_manager"-->
android:icon="@drawable/ic_baseline_layers_24" <!-- android:icon="@drawable/ic_baseline_layers_24"-->
android:title="图层管理" /> <!-- android:title="图层管理" />-->
<item <item
android:id="@+id/personal_center_menu_test" android:id="@+id/personal_center_menu_test"

View File

@ -40,7 +40,7 @@
<!--金色 --> <!--金色 -->
<!--粉红色 --> <!--粉红色 -->
<!--亮粉红色 --> <!--亮粉红色 -->
<color name="orange">#FFA500</color> <!--橙色 --> <color name="orange">#FFBC6E</color> <!--橙色 -->
<!--亮肉色 --> <!--亮肉色 -->
<!--暗桔黄色 --> <!--暗桔黄色 -->
<!--珊瑚色 --> <!--珊瑚色 -->

View File

@ -24,7 +24,7 @@
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@color/white</item> <item name="android:textColor">@color/white</item>
<item name="android:textSize">18sp</item> <item name="android:textSize">18sp</item>
<item name="android:layout_margin">5dp</item>
</style> </style>
<style name="title_default_style" comment="默认顶标题样式"> <style name="title_default_style" comment="默认顶标题样式">

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#f4f4f4" <rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#f4f4f4"
version="1" xmlns="http://opensciencemap.org/rendertheme" version="1" xmlns="http://opensciencemap.org/rendertheme" xsi:schemaLocation="http://opensciencemap.org/rendertheme
xsi:schemaLocation="http://opensciencemap.org/rendertheme
https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd"> https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd">
<!--###### TRANSFORM tags ######--> <!--###### TRANSFORM tags ######-->
@ -46,8 +45,8 @@
<!--references--> <!--references-->
<style-text style="bold" fill="#606060" id="ref" k="ref" priority="2" size="12" stroke="#ffffff" <style-text style="bold" fill="#606060" id="ref" k="ref" priority="2" size="12" stroke="#ffffff"
stroke-width="2.0" /> stroke-width="2.0" />
<style-text caption="true" style="bold" fill="#ffffff" id="ref-caption" k="ref" priority="2" <style-text style="bold" bg-fill="#45a976" caption="true" fill="#ffffff" id="ref-caption"
size="12" bg-fill="#45a976" /> k="ref" priority="2" size="12" />
<!--ferry--> <!--ferry-->
<style-text style="bold" fill="#606060" id="ferry" k="name" size="12" stroke="#ffffff" <style-text style="bold" fill="#606060" id="ferry" k="name" size="12" stroke="#ffffff"
stroke-width="2.0" /> stroke-width="2.0" />
@ -174,7 +173,7 @@
<style-symbol id="oneway" repeat="true" src="assets:symbols/oneway.svg" /> <style-symbol id="oneway" repeat="true" src="assets:symbols/oneway.svg" />
<!-- omdb --> <!-- omdb -->
<style-line id="boundaryType" width="0.1" stipple-width="0.1" /> <style-line id="boundaryType" stipple-width="0.1" width="0.1" />
<!--###### ASSIGNMENT ######--> <!--###### ASSIGNMENT ######-->
@ -1480,18 +1479,19 @@
</m> </m>
<!-- 自定义渲染样式 --> <!-- 自定义渲染样式 -->
<m k="navi_type" zoom-min="15" zoom-max="22"> <m k="navi_type" zoom-max="22" zoom-min="15">
<!-- 车道中心线 --> <!-- 车道中心线 -->
<m v="had_lane_link"> <m v="had_lane_link">
<line stroke="#ff0000" stipple-stroke="#00000000" dasharray="20,20" fix="true" width="0.3" /> <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#ff0000"
width="0.3" />
</m> </m>
<!-- 车道边线 --> <!-- 车道边线 -->
<m v="had_lane_mark_link"> <m v="had_lane_mark_link">
<line stroke="#0000ff" width="0.1" stipple-width="0.5"/> <line stipple-width="0.5" stroke="#0000ff" width="0.1" />
</m> </m>
<!--道路箭头 objectArrow--> <!--道路箭头 objectArrow-->
<m v="object_arrow"> <m v="object_arrow">
<area fill="#88aaaa00" stroke="#ff0000" stroke-width="0.1" fade="5"></area> <area fade="5" fill="#88aaaa00" stroke="#ff0000" stroke-width="0.1"></area>
</m> </m>
<!--人行横道 objectcrosswalk--> <!--人行横道 objectcrosswalk-->
<m v="object_crosswalk"> <m v="object_crosswalk">
@ -1503,7 +1503,7 @@
</m> </m>
<!--杆状物 objectpole--> <!--杆状物 objectpole-->
<m v="object_pole"> <m v="object_pole">
<line stroke="#8800aaaa" width="0.1" stipple-width="0.5"/> <line stipple-width="0.5" stroke="#8800aaaa" width="0.1" />
</m> </m>
<!--对象标志 objectsymbol--> <!--对象标志 objectsymbol-->
<m v="object_symbol"> <m v="object_symbol">
@ -1514,7 +1514,7 @@
<area fill="#8800cc00" stroke="#00cc00" stroke-width="0.2"></area> <area fill="#8800cc00" stroke="#00cc00" stroke-width="0.2"></area>
</m> </m>
<m zoom-min="15" zoom-max="19"> <m zoom-max="19" zoom-min="15">
<text use="ferry" /> <text use="ferry" />
</m> </m>
@ -1538,19 +1538,20 @@
<m k="nav_style"> <m k="nav_style">
<m v="symbol_object_line"> <m v="symbol_object_line">
<m k="rule" zoom-min="15" zoom-max="22"> <m k="rule" zoom-max="22" zoom-min="15">
<!-- 蓝色黑色间隔线 --> <!-- 蓝色黑色间隔线 -->
<m v="blue_link"> <m v="blue_link">
<line stroke="#00000000" stipple-stroke="#00000000" dasharray="20,20" fix="true" width="0.1" /> <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#00000000"
width="0.1" />
</m> </m>
<!-- 黄色线 --> <!-- 黄色线 -->
<m v="yellow_link"> <m v="yellow_link">
<line stroke="#f4ea2a" width="0.1" stipple-width="0.1"/> <line stipple-width="0.1" stroke="#f4ea2a" width="0.1" />
</m> </m>
</m> </m>
<line stroke="#33aaaa" width="0.3" stipple-width="0.5"/> <line stipple-width="0.5" stroke="#33aaaa" width="0.3" />
</m> </m>
<m v="symbol_track_point" zoom-min="10" zoom-max="25"> <m v="symbol_track_point" zoom-max="25" zoom-min="10">
<symbol src="assets:symbols/dot_blue.svg" /> <symbol src="assets:symbols/dot_blue.svg" />
</m> </m>
</m> </m>
@ -1560,157 +1561,147 @@
<m v="OMDB_LANE_NUM"> <m v="OMDB_LANE_NUM">
<m k="laneNum"> <m k="laneNum">
<m v="1"> <m v="1">
<line stroke="#545D6C" width="3"/> <line stroke="#545D6C" width="3" />
</m> </m>
<m v="2"> <m v="2">
<line stroke="#545D6C" width="6"/> <line stroke="#545D6C" width="6" />
</m> </m>
<m v="3"> <m v="3">
<line stroke="#545D6C" width="9"/> <line stroke="#545D6C" width="9" />
</m> </m>
<m v="4"> <m v="4">
<line stroke="#545D6C" width="12"/> <line stroke="#545D6C" width="12" />
</m> </m>
<m v="5"> <m v="5">
<line stroke="#545D6C" width="15"/> <line stroke="#545D6C" width="15" />
</m> </m>
<m v="6"> <m v="6">
<line stroke="#545D6C" width="18" /> <line stroke="#545D6C" width="18" />
</m> </m>
<m v="7"> <m v="7">
<line stroke="#545D6C" width="21"/> <line stroke="#545D6C" width="21" />
</m> </m>
<m v="8"> <m v="8">
<line stroke="#545D6C" width="24"/> <line stroke="#545D6C" width="24" />
</m> </m>
<m v="9"> <m v="9">
<line stroke="#545D6C" width="27"/> <line stroke="#545D6C" width="27" />
</m> </m>
<m v="10"> <m v="10">
<line stroke="#545D6C" width="30"/> <line stroke="#545D6C" width="30" />
</m> </m>
<m v="11"> <m v="11">
<line stroke="#545D6C" width="33"/> <line stroke="#545D6C" width="33" />
</m> </m>
<m v="12"> <m v="12">
<line stroke="#545D6C" width="36"/> <line stroke="#545D6C" width="36" />
</m> </m>
</m> </m>
</m> </m>
<!-- 道路线 --> <!-- 道路线 -->
<m v="OMDB_RD_LINK"> <m v="OMDB_RD_LINK">
<line stroke="#9c9c9c" width="1"/> <line stroke="#9c9c9c" width="1" />
</m> </m>
<!--道路种别--> <!--道路种别-->
<m v="OMDB_RD_LINK_KIND"> <m v="OMDB_RD_LINK_KIND">
<m k="kind"> <outline-layer id="kind0" stroke="#44000000" width="0.1" />
<m v="1"> <outline-layer id="kind1" stroke="#aa807040" width="0.1" />
<line stroke="#fcacd4" width="1"/> <m k="kind" v="1">
</m> <line blur="0.3" outline="kind0" use="highway:z11" />
<m v="2"> </m>
<line stroke="#dcacfc" width="1"/> <m k="kind" v="2|3">
</m> <line outline="kind0" use="trunk" />
<m v="3"> </m>
<line stroke="#fc9c9c" width="1"/> <m k="kind" v="4">
</m> <line outline="kind0" use="primary:z11" />
<m v="4"> </m>
<line stroke="#fcd484" width="1"/> <m k="kind" v="5|6">
</m> <line outline="kind0" use="secondary:z11" />
<m v="5"> </m>
<line stroke="#ecfccc" width="1"/> <m k="kind" v="7">
</m> <line outline="kind0" use="tertiary" />
<m v="6"> </m>
<line stroke="#acec84" width="1"/> <m k="kind" v="8">
</m> <line outline="kind0" use="residential" />
<m v="7"> </m>
<line stroke="#806048" width="1"/> <m k="kind" v="9|10">
</m> <line outline="kind0" use="footway:z17" />
<m v="8"> </m>
<line stroke="#fcfc7c" width="1"/> <m k="kind" v="11|13">
</m> <line outline="kind0" use="ferry" />
<m v="9"> </m>
<line stroke="#acc4fc" width="1"/> <m k="kind" v="15">
</m> <line outline="kind0" use="highway:cycleway" />
<m v="10">
<line stroke="#8cc8e0" width="1"/>
</m>
<m v="11">
<line stroke="#64ecdc" width="1"/>
</m>
<m v="13">
<line stroke="#585080" width="1"/>
</m>
<m v="15">
<line stroke="#647430" width="1"/>
</m>
</m> </m>
</m> </m>
<!--常规点限速--> <!--常规点限速-->
<m v="OMDB_SPEEDLIMIT"> <m v="OMDB_SPEEDLIMIT">
<m k="speedFlag"> <m k="speedFlag" v="0">
<m v="0"> <!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>-->
<!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>--> <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" stroke-width="1.0"></caption>
stroke-width="1.0"></caption> <symbol src="assets:omdb/icon_4002_0.svg" symbol-height="46"
<symbol src="assets:omdb/icon_4002_0.svg" symbol-width="46" symbol-height="46"></symbol> symbol-width="46"></symbol>
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff" <!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
stroke-width="1.0"></caption> <!-- stroke-width="1.0"></caption>-->
</m> </m>
<m v="1"> <m k="speedFlag" v="1">
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4002_1.svg" symbol-width="46" symbol-height="46"></symbol> <symbol src="assets:omdb/icon_4002_1.svg" symbol-height="46"
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff" symbol-width="46"></symbol>
stroke-width="1.0"></caption> <!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
</m> <!-- stroke-width="1.0"></caption>-->
</m> </m>
</m> </m>
<!--条件点限速--> <!--条件点限速-->
<m v="OMDB_SPEEDLIMIT_COND"> <m v="OMDB_SPEEDLIMIT_COND">
<m k="speedFlag"> <m k="speedFlag" v="0">
<m v="0"> <!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>-->
<!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>--> <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" stroke-width="1.0"></caption>
stroke-width="1.0"></caption> <symbol src="assets:omdb/icon_4003_0.svg" symbol-height="46"
<symbol src="assets:omdb/icon_4003_0.svg" symbol-width="46" symbol-height="46"></symbol> symbol-width="46"></symbol>
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff" <!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
stroke-width="1.0"></caption> <!-- stroke-width="1.0"></caption>-->
</m> </m>
<m v="1"> <m k="speedFlag" v="1">
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4003_1.svg" symbol-width="46" symbol-height="46"></symbol> <symbol src="assets:omdb/icon_4003_1.svg" symbol-height="46"
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff" symbol-width="46"></symbol>
stroke-width="1.0"></caption> <!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
</m> <!-- stroke-width="1.0"></caption>-->
</m> </m>
</m> </m>
<!--可变点限速--> <!--可变点限速-->
<m v="OMDB_SPEEDLIMIT_VAR"> <m v="OMDB_SPEEDLIMIT_VAR">
<m v="0"> <m k="speedFlag" v="0">
<!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>--> <!-- <symbol src="assets:omdb/round_speedlimit.svg" symbol-width="30" symbol-height="30"></symbol>-->
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_0.svg" symbol-width="46" symbol-height="46"></symbol>
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_0.svg" symbol-height="46"
symbol-width="46"></symbol>
<!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
<!-- stroke-width="1.0"></caption>-->
</m> </m>
<m v="1"> <m k="speedFlag" v="1">
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_1.png" symbol-width="46" symbol-height="46"></symbol>
<caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_1.png" symbol-height="46"
symbol-width="46"></symbol>
<!-- <caption k="minSpeed" dy="-28" fill="#000000" priority="0" size="14" stroke="#ffffff"-->
<!-- stroke-width="1.0"></caption>-->
</m> </m>
</m> </m>
<!--车道中心线--> <!--车道中心线-->
<m v="OMDB_LANE_LINK_LG"> <m v="OMDB_LANE_LINK_LG">
<line stroke="#ecf0f1" width="0.1" dasharray="35,35"/> <line dasharray="35,35" stroke="#ecf0f1" width="0.1" />
</m> </m>
<!-- 道路边界类型 --> <!-- 道路边界类型 -->
<m v="OMDB_RDBOUND_BOUNDARYTYPE"> <m v="OMDB_RDBOUND_BOUNDARYTYPE">
<line stroke="#ffffff" width="0.1"/> <line stroke="#ffffff" width="0.1" />
</m> </m>
<!-- 车道边界类型 --> <!-- 车道边界类型 -->
<m v="OMDB_LANE_MARK_BOUNDARYTYPE"> <m v="OMDB_LANE_MARK_BOUNDARYTYPE">
@ -1723,19 +1714,19 @@
<m v="0|1"> <m v="0|1">
<m k="markColor"> <m k="markColor">
<m v="0|1"> <m v="0|1">
<line stroke="#ffffff" use="boundaryType"/> <line stroke="#ffffff" use="boundaryType" />
</m> </m>
<m v="2"> <m v="2">
<line stroke="#eccc68" use="boundaryType"/> <line stroke="#eccc68" use="boundaryType" />
</m> </m>
<m v="6"> <m v="6">
<line stroke="#0000ff" use="boundaryType"/> <line stroke="#0000ff" use="boundaryType" />
</m> </m>
<m v="7"> <m v="7">
<line stroke="#00ff00" use="boundaryType"/> <line stroke="#00ff00" use="boundaryType" />
</m> </m>
<m v="9"> <m v="9">
<line stroke="#8e44ad" use="boundaryType"/> <line stroke="#8e44ad" use="boundaryType" />
</m> </m>
</m> </m>
</m> </m>
@ -1743,31 +1734,37 @@
<m v="2"> <m v="2">
<m k="markColor"> <m k="markColor">
<m v="0|1"> <m v="0|1">
<line stroke="#ffffff" use="boundaryType" dasharray="3,13"/> <line dasharray="13,135" stipple="5" stipple-stroke="#000000"
stroke="#ffffff" use="boundaryType" />
</m> </m>
<m v="2"> <m v="2">
<line stroke="#eccc68" use="boundaryType" dasharray="3,3"/> <line dasharray="13,135" stipple="5" stipple-stroke="#ffffff"
stroke="#eccc68" use="boundaryType" />
</m> </m>
<m v="6"> <m v="6">
<line stroke="#0000ff" use="boundaryType" dasharray="3,3"/> <line dasharray="13,135" stipple="5" stipple-stroke="#ffffff"
stroke="#0000ff" use="boundaryType" />
</m> </m>
<m v="7"> <m v="7">
<line stroke="#00ff00" use="boundaryType" dasharray="3,3"/> <line dasharray="13,135" stipple="5" stipple-stroke="#ffffff"
stroke="#00ff00" use="boundaryType" />
</m> </m>
<m v="9"> <m v="9">
<line stroke="#8e44ad" use="boundaryType" dasharray="3,3"/> <line dasharray="13,135" stipple="5" stipple-stroke="#ffffff"
stroke="#8e44ad" use="boundaryType" />
</m> </m>
</m> </m>
</m> </m>
<!--导流区边线--> <!--导流区边线-->
<m v="4"> <m v="4">
<line outline="boundary" stroke="#545D6C"></line> <line outline="boundary" stroke="#545D6C"></line>
<lineSymbol src="assets:omdb/icon_right.png" repeat-start="0" repeat-gap="0.5"/> <lineSymbol repeat-gap="0.5" repeat-start="0"
src="assets:omdb/icon_right.png" />
</m> </m>
<!-- &lt;!&ndash;铺设路面边缘&ndash;&gt;--> <!-- &lt;!&ndash;铺设路面边缘&ndash;&gt;-->
<!-- <m v="5">--> <!-- <m v="5">-->
<!-- <line outline="#ffffff" fix="true" src="assets:omdb/icon_close.png" stroke="#ffffffff" use="boundaryType"/>--> <!-- <line outline="#ffffff" fix="true" src="assets:omdb/icon_close.png" stroke="#ffffffff" use="boundaryType"/>-->
<!-- </m>--> <!-- </m>-->
</m> </m>
</m> </m>
</m> </m>
@ -1776,30 +1773,39 @@
<m v="OMDB_LINK_DIRECT"> <m v="OMDB_LINK_DIRECT">
<m k="direct"> <m k="direct">
<m v="2"> <m v="2">
<!-- <lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>--> <!-- <lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>-->
<lineSymbol src="assets:omdb/oneway_right.svg" ></lineSymbol> <lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>
</m> </m>
<m v="3"> <m v="3">
<!-- <lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>--> <!-- <lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>-->
<lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol> <lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>
</m> </m>
</m> </m>
</m> </m>
<!--交通灯--> <!--交通灯-->
<m v="OMDB_TRAFFICLIGHT"> <m v="OMDB_TRAFFICLIGHT">
<symbol src="assets:omdb/icon_4022_0.svg" repeat="false" symbol-width="46" symbol-height="46" rotate="false"></symbol> <symbol repeat="false" rotate="false" src="assets:omdb/icon_4022_0.svg"
symbol-height="69" symbol-width="69"></symbol>
</m> </m>
<!--普通交限--> <!--普通交限-->
<m v="OMDB_RESTRICTION"> <m v="OMDB_RESTRICTION">
<m k="angle"> <m k="angle">
<symbol src="assets:omdb/icon_4006_0.svg" repeat="false" symbol-width="46" symbol-height="46" rotate="false" repeat-start="0" ></symbol> <symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_4006_0.svg" symbol-height="69" symbol-width="69"></symbol>
</m> </m>
<m k="type" v="angle"> <m k="type" v="angle">
<symbol src="assets:omdb/icon_arrow_right.svg" repeat-start="0" repeat-gap="2000" symbol-percent="45" repeat="false" rotate="true"></symbol> <symbol repeat="false" repeat-gap="2000" repeat-start="0" rotate="true"
src="assets:omdb/icon_arrow_right.svg" symbol-height="76"
symbol-width="76"></symbol>
</m> </m>
<m k="type" v="s_2_e"> <m k="type" v="s_2_e">
<line stroke="#14582c" width="0.1" dasharray="1,1" repeat-gap="3" repeat-start="0"/> <line dasharray="1,1" repeat-gap="3" repeat-start="0" stroke="#14582c"
width="0.1" />
</m> </m>
</m> </m>
<!-- 道路名 -->
<m v="OMDB_LINK_NAME">
<text use="road"></text>
</m>
</m> </m>
</rendertheme> </rendertheme>

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -1,40 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="140" <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="296" height="296" viewBox="0 0 296 296"><defs><style>.a{opacity:0;isolation:isolate;}.b{fill:#545e6c;opacity:0.999;}.c{fill:rgba(255,255,255,0.12);stroke:#f7ad5d;}.d{fill:rgba(255,255,255,0.11);stroke:rgba(255,255,255,0.67);opacity:0.459;}.e{stroke:rgba(0,0,0,0);stroke-miterlimit:10;fill:url(#a);}.f{stroke:none;}.g{fill:none;}</style><linearGradient id="a" x1="0.5" y1="0.267" x2="0.5" y2="0.712" gradientUnits="objectBoundingBox"><stop offset="0" stop-color="#ca4916"/><stop offset="1" stop-color="#f7ad5d"/></linearGradient></defs><g transform="translate(-243 -404)"><g transform="translate(1762 -801) rotate(90)"><g class="a" transform="translate(1205 1231)"><rect class="b" width="296" height="296" transform="translate(0 -8)"/></g><g transform="translate(1250 1231)"><g class="c" transform="translate(13 50)"><circle class="f" cx="90" cy="90" r="90"/><circle class="g" cx="90" cy="90" r="89.5"/></g><g class="d" transform="translate(35 72)"><circle class="f" cx="68" cy="68" r="68"/><circle class="g" cx="68" cy="68" r="67.5"/></g><path class="e" d="M18.942,57.189V36.331H6.056A6,6,0,0,1,.535,32.946a5.356,5.356,0,0,1,.753-5.814L21.849,2.2a6.269,6.269,0,0,1,9.537,0L51.947,27.132a5.356,5.356,0,0,1,.753,5.814,6,6,0,0,1-5.521,3.386H34.293V57.1c-2.29-.125-4.628-.189-6.947-.189-2.8,0-5.622.093-8.4.277Z" transform="translate(76.383 -6.188)"/></g></g></g></svg>
height="140" viewBox="0 0 140 140">
<defs>
<style>
.a{fill:none;}.b{fill:#898989;opacity:0;}.c{opacity:0.14;mix-blend-mode:multiply;isolation:isolate;}.d{clip-path:url(#a);}.e{fill:#b2250a;}.f{fill:#ea7626;}.g{fill:#fae8c8;}
</style>
<clipPath id="a">
<rect class="a" width="54.796" height="40.392" />
</clipPath>
</defs>
<g transform="translate(-1333 -1090)">
<g transform="translate(251 665)">
<rect class="b" width="140" height="140" transform="translate(1082 425)" />
<g transform="translate(229.467 -611)">
<g transform="translate(937.713 1086)">
<g transform="translate(0 0)">
<g class="c" transform="translate(0)">
<g transform="translate(0)">
<g class="d">
<path
d="M38.035,31.807l-16.7-13a3.818,3.818,0,0,0-6.163,3.014v3.908h-26.39A4.066,4.066,0,0,0-15.287,29.8V39.844a4.066,4.066,0,0,0,4.066,4.066h26.39v3.908a3.818,3.818,0,0,0,6.163,3.014l16.7-13a3.819,3.819,0,0,0,0-6.027"
transform="translate(15.287 -18)" />
</g>
</g>
</g>
<path class="e"
d="M39.533,29.22H37.54L21.332,41.831a3.819,3.819,0,0,1-6.163-3.014V34.909h-26.39a4.066,4.066,0,0,1-4.066-4.066V20.8a4.066,4.066,0,0,1,4.066-4.066h26.39V12.825a3.818,3.818,0,0,1,6.163-3.014l16.7,13a3.791,3.791,0,0,1,1.448,2.581l.049.005Z"
transform="translate(15.287 -5.889)" />
<path class="f"
d="M38.028,13.807l-16.7-13a3.818,3.818,0,0,0-6.163,3.014V7.733H-11.253A4.066,4.066,0,0,0-15.318,11.8V21.844a4.066,4.066,0,0,0,4.066,4.066H15.162v3.908a3.818,3.818,0,0,0,6.163,3.014l16.7-13a3.819,3.819,0,0,0,0-6.027"
transform="translate(15.318 6.457)" />
</g>
<path class="g"
d="M75.8,20.234a2.381,2.381,0,0,1-1.511-.539L71.346,17.29a2.392,2.392,0,1,1,3.025-3.706l2.948,2.406A2.392,2.392,0,0,1,75.8,20.234"
transform="translate(-35.64 -1.875)" />
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -105,7 +105,6 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP
} }
private fun initOMDBVectorTileLayer() { private fun initOMDBVectorTileLayer() {
// 初始化OMDB参考相关图层 // 初始化OMDB参考相关图层
omdbReferenceTileLayer = VectorTileLayer(mMapView.vtmMap, omdbReferenceTileSource) omdbReferenceTileLayer = VectorTileLayer(mMapView.vtmMap, omdbReferenceTileSource)
omdbReferenceLabelLayer = LabelLayer( omdbReferenceLabelLayer = LabelLayer(

View File

@ -263,7 +263,6 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
mContext.lifecycleScope.launch(Dispatchers.IO) { mContext.lifecycleScope.launch(Dispatchers.IO) {
var list = mutableListOf<QsRecordBean>() var list = mutableListOf<QsRecordBean>()
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
realm.executeTransaction { realm.executeTransaction {
val objects = realm.where<QsRecordBean>().findAll() val objects = realm.where<QsRecordBean>().findAll()
list = realm.copyFromRealm(objects) list = realm.copyFromRealm(objects)

View File

@ -89,7 +89,6 @@ public class MyItemizedLayer extends ItemizedLayer {
private boolean activateSelectedItems(MotionEvent event, ActiveItem task) { private boolean activateSelectedItems(MotionEvent event, ActiveItem task) {
int size = this.mItemList.size(); int size = this.mItemList.size();
Log.e("jingo", "地图点击 size =" + size);
if (size == 0) { if (size == 0) {
return false; return false;
} else { } else {

2
vtm

@ -1 +1 @@
Subproject commit dd13e533c38b5738ab404c2737d7ccadeff01323 Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a