Merge branch 'master' of https://gitlab.navinfo.com/CollectVehicle/OneMapQS
Conflicts: app/src/main/java/com/navinfo/omqs/Constant.kt app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt
@ -20,6 +20,19 @@
|
||||
"code": 2010,
|
||||
"name": "道路方向"
|
||||
},
|
||||
"2011": {
|
||||
"table": "OMDB_LINK_NAME",
|
||||
"code": 2011,
|
||||
"name": "道路名",
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateRoadName()"
|
||||
}
|
||||
]
|
||||
},
|
||||
"2013": {
|
||||
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
|
||||
"code": 2013,
|
||||
@ -83,6 +96,14 @@
|
||||
"code": 2202,
|
||||
"name": "隧道"
|
||||
},
|
||||
"4001": {
|
||||
"table": "OMDB_INTERSECTION",
|
||||
"code": 4001,
|
||||
"name": "路口",
|
||||
"transformer": [
|
||||
|
||||
]
|
||||
},
|
||||
"4002": {
|
||||
"table": "OMDB_SPEEDLIMIT",
|
||||
"code": 4002,
|
||||
@ -153,6 +174,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"4010":{
|
||||
"table": "OMDB_ELECTRONICEYE",
|
||||
"code": 4010,
|
||||
"name": "电子眼",
|
||||
"transformer": [
|
||||
|
||||
]
|
||||
},
|
||||
"4022": {
|
||||
"table": "OMDB_TRAFFICLIGHT",
|
||||
"code": 4022,
|
||||
@ -166,10 +195,23 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"4601":{
|
||||
"table": "OMDB_LANEINFO",
|
||||
"code": 4601,
|
||||
"name": "车信",
|
||||
"transformer": [
|
||||
|
||||
]
|
||||
},
|
||||
"5001":{
|
||||
"table": "OMDB_LANE_LINK_LG",
|
||||
"code": 5001,
|
||||
"name": "车道中心线"
|
||||
}
|
||||
},
|
||||
"5002":{
|
||||
"table": "OMDB_AREA",
|
||||
"code": 5002,
|
||||
"name": "面测试"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package com.navinfo.omqs
|
||||
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
|
||||
class Constant {
|
||||
companion object {
|
||||
/**
|
||||
@ -45,6 +47,11 @@ class Constant {
|
||||
*/
|
||||
lateinit var DOWNLOAD_PATH: String
|
||||
|
||||
/**
|
||||
* 图层管理对应的配置
|
||||
* */
|
||||
var LAYER_CONFIG_LIST: List<ImportConfig>? = null
|
||||
|
||||
/**
|
||||
* 室内整理工具IP
|
||||
*/
|
||||
|
@ -119,14 +119,28 @@ class ImportPreProcess {
|
||||
* 解析车道边线数据二级属性
|
||||
* */
|
||||
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") {
|
||||
// 解析shapeList,将数组中的属性放会properties
|
||||
val shapeList = JSONArray(renderEntity.properties["shapeList"])
|
||||
val shape = shapeList.getJSONObject(0)
|
||||
for (key in shape.keys()) {
|
||||
renderEntity.properties[key] = shape[key].toString()
|
||||
for (i in 0 until shapeList.length()) {
|
||||
shape = shapeList.getJSONObject(i)
|
||||
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"
|
||||
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"] = ""
|
||||
}
|
||||
}
|
||||
}
|
@ -149,11 +149,9 @@ class OfflineMapDownloadScope(
|
||||
}
|
||||
}
|
||||
|
||||
Log.e("jingo", "文件下载完成 ${cityBean.currentSize} == ${cityBean.fileSize}")
|
||||
if (cityBean.currentSize == cityBean.fileSize) {
|
||||
val res =
|
||||
fileTemp.renameTo(File("${Constant.OFFLINE_MAP_PATH}${cityBean.fileName}"))
|
||||
Log.e("jingo", "文件下载完成 修改文件 $res")
|
||||
change(FileDownloadStatus.DONE)
|
||||
withContext(Dispatchers.Main) {
|
||||
downloadManager.mapController.layerManagerHandler.loadBaseMap()
|
||||
|
@ -188,7 +188,6 @@ class TaskDownloadScope(
|
||||
responseBody ?: throw IOException("jingo ResponseBody is null")
|
||||
if (startPosition == 0L) {
|
||||
taskBean.fileSize = responseBody.contentLength()
|
||||
Log.e("jingo", "当前文件大小 ${taskBean.fileSize}")
|
||||
}
|
||||
change(FileDownloadStatus.LOADING)
|
||||
//写入文件
|
||||
|
@ -15,16 +15,20 @@ class LayerConfigUtils {
|
||||
private val gson = Gson()
|
||||
|
||||
fun getLayerConfigList(): List<ImportConfig> {
|
||||
// 首先读取Shared文件,如果存在则直接返回,否则读取config文件
|
||||
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()
|
||||
}
|
||||
// 首先读取全局变量的数据,如果存在则直接返回,否则读取config文件
|
||||
if (Constant.LAYER_CONFIG_LIST == null) {
|
||||
Constant.LAYER_CONFIG_LIST = 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> {
|
||||
|
@ -23,6 +23,7 @@ import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
import com.navinfo.omqs.bean.SignBean
|
||||
import com.navinfo.omqs.databinding.ActivityMainBinding
|
||||
import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager
|
||||
import com.navinfo.omqs.tools.LayerConfigUtils
|
||||
@ -67,9 +68,7 @@ class MainActivity : BaseActivity() {
|
||||
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
|
||||
if (result.resultCode == Activity.RESULT_OK) {
|
||||
val data: Intent? = result.data
|
||||
Log.e("jingo", "MainActivity someActivityResultLauncher RESULT_OK")
|
||||
} else {
|
||||
Log.e("jingo", "MainActivity someActivityResultLauncher ${result.resultCode}")
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,16 +87,44 @@ class MainActivity : BaseActivity() {
|
||||
* 提前显示要素看板
|
||||
*/
|
||||
private val signAdapter by lazy {
|
||||
SignAdapter { _, autoSave, signBean ->
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
bundle.putBoolean("AutoSave", autoSave)
|
||||
rightController.navigate(R.id.EvaluationResultFragment, bundle)
|
||||
SignAdapter(object : OnSignAdapterClickListener {
|
||||
override fun onItemClick(signBean: SignBean) {
|
||||
rightController.currentDestination?.let {
|
||||
if (it.id == R.id.RightEmptyFragment) {
|
||||
val bundle = Bundle()
|
||||
bundle.putParcelable("SignBean", signBean)
|
||||
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) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
voiceOnTouchStart()//Do Something
|
||||
Log.e("qj", "voiceOnTouchStart")
|
||||
}
|
||||
MotionEvent.ACTION_UP -> {
|
||||
voiceOnTouchStop()//Do Something
|
||||
Log.e("qj", "voiceOnTouchStop")
|
||||
}
|
||||
}
|
||||
v?.onTouchEvent(event) ?: true
|
||||
@ -203,9 +228,9 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
//监听地图中点变化
|
||||
viewModel.liveDataCenterPoint.observe(this) {
|
||||
Log.e("qj","${it.longitude}")
|
||||
try{
|
||||
if(it!=null&&it.longitude!=null&&it.latitude!=null){
|
||||
Log.e("qj", "${it.longitude}")
|
||||
try {
|
||||
if (it != null && it.longitude != null && it.latitude != null) {
|
||||
binding.mainActivityGeometry.text = "经纬度:${
|
||||
BigDecimal(it.longitude).setScale(
|
||||
7,
|
||||
@ -213,8 +238,8 @@ class MainActivity : BaseActivity() {
|
||||
)
|
||||
},${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}"
|
||||
}
|
||||
}catch (e:Exception){
|
||||
Log.e("qj","异常")
|
||||
} catch (e: Exception) {
|
||||
Log.e("qj", "异常 $e")
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,7 +271,7 @@ class MainActivity : BaseActivity() {
|
||||
val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null)
|
||||
val inputDialog = MaterialAlertDialogBuilder(
|
||||
this
|
||||
).setTitle("标记原因").setView(view)
|
||||
).setTitle("坐标定位").setView(view)
|
||||
var editText = view.findViewById<EditText>(R.id.dialog_edittext)
|
||||
editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567"
|
||||
inputDialog.setNegativeButton("取消") { dialog, _ ->
|
||||
@ -258,7 +283,7 @@ class MainActivity : BaseActivity() {
|
||||
val parts = editText.text.toString().split("[,,\\s]".toRegex())
|
||||
if (parts.size == 2) {
|
||||
val x = parts[0].toDouble()
|
||||
val y = parts[0].toDouble()
|
||||
val y = parts[1].toDouble()
|
||||
mapController.animationHandler.animationByLatLon(y, x)
|
||||
} else {
|
||||
Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show()
|
||||
@ -413,6 +438,12 @@ class MainActivity : BaseActivity() {
|
||||
*/
|
||||
fun onSwitchSheet() {
|
||||
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
|
||||
} else {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
|
||||
@ -472,10 +503,18 @@ class MainActivity : BaseActivity() {
|
||||
.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 == null) {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
|
||||
|
@ -183,11 +183,10 @@ class MainViewModel @Inject constructor(
|
||||
location.tiley = y
|
||||
}
|
||||
}
|
||||
Log.e("jingo", "定位点插入 ${location.longitude}")
|
||||
location.groupId = uuid
|
||||
try {
|
||||
location.timeStamp = DateTimeUtil.getTime(location.time).toString()
|
||||
}catch (e: Exception){
|
||||
} catch (e: Exception) {
|
||||
|
||||
}
|
||||
traceDataBase.niLocationDao.insert(location)
|
||||
@ -244,7 +243,8 @@ class MainViewModel @Inject constructor(
|
||||
geometry = element.geometry,
|
||||
name = SignUtil.getSignNameText(element),
|
||||
bottomRightText = SignUtil.getSignBottomRightText(element),
|
||||
elementCode = element.code
|
||||
elementCode = element.code,
|
||||
moreText = SignUtil.getMoreInfoText(element)
|
||||
)
|
||||
|
||||
when (element.code) {
|
||||
@ -292,9 +292,8 @@ class MainViewModel @Inject constructor(
|
||||
speakMode?.speakText(speechText)
|
||||
}
|
||||
linkIdCache = linkId ?: ""
|
||||
Log.e("jingo", "自动捕捉数据 共${signList.size}条")
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
mapController.lineHandler.removeLine()
|
||||
linkIdCache = ""
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.navinfo.omqs.ui.activity.map
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.navinfo.omqs.R
|
||||
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.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>() {
|
||||
/**
|
||||
* 选中的详细信息按钮的tag标签
|
||||
*/
|
||||
private var selectMoreInfoTag: String = ""
|
||||
override fun getItemViewRes(position: Int): Int {
|
||||
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) {
|
||||
val bd = holder.viewBinding as AdapterSignBinding
|
||||
|
||||
val item = data[position]
|
||||
if (item.iconId != 0)
|
||||
bd.signMainIconBg.setImageResource(item.iconId)
|
||||
if (item.iconId != 0) bd.signMainIconBg.setImageResource(item.iconId)
|
||||
bd.signMainIcon.text = item.iconText
|
||||
bd.signBottomText.text = item.name
|
||||
bd.signMainFastError.setOnClickListener{
|
||||
itemListener?.invoke(position, true,item)
|
||||
holder.tag = item.name + position
|
||||
//点击错误按钮
|
||||
bd.signMainFastError.setOnClickListener {
|
||||
listener?.onErrorClick(item)
|
||||
}
|
||||
bd.signBottomRightText.text = item.bottomRightText
|
||||
|
||||
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()
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,7 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.View.OnClickListener
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.transition.AutoTransition
|
||||
import androidx.transition.Scene
|
||||
@ -64,14 +65,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
|
||||
override fun onTransitionStart(transition: androidx.transition.Transition) {
|
||||
sceneFlag = true
|
||||
if (mFragment != null) {
|
||||
Log.e("jingo", "动画开始B mFragment 不为null")
|
||||
childFragmentManager.beginTransaction().remove(mFragment!!).commit()
|
||||
mFragment = null
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTransitionEnd(transition: androidx.transition.Transition) {
|
||||
Log.e("jingo", "动画A结束")
|
||||
initOnClickListener()
|
||||
}
|
||||
|
||||
@ -89,7 +88,6 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
|
||||
override fun onTransitionStart(transition: androidx.transition.Transition) {
|
||||
sceneFlag = false
|
||||
if (mFragment != null) {
|
||||
Log.e("jingo", "动画开始A mFragment 不为null")
|
||||
childFragmentManager.beginTransaction().replace(fragmentId, mFragment!!)
|
||||
.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_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() {
|
||||
@ -235,6 +238,9 @@ class ConsoleFragment : BaseFragment(), OnClickListener {
|
||||
(a as MainActivity).onClickResFragment()
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 任务列表
|
||||
*/
|
||||
R.id.console_task_icon_bg, R.id.console_task_bg -> {
|
||||
activity?.let { a ->
|
||||
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 -> {}
|
||||
}
|
||||
}
|
||||
|
@ -98,17 +98,14 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
||||
when (event?.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
voiceOnTouchStart()//Do Something
|
||||
Log.e("qj", "voiceOnTouchStart")
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_UP -> {
|
||||
voiceOnTouchStop()//Do Something
|
||||
Log.e("qj", "ACTION_UP")
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_CANCEL -> {
|
||||
voiceOnTouchStop()//Do Something
|
||||
Log.e("qj", "ACTION_CANCEL")
|
||||
}
|
||||
}
|
||||
true
|
||||
|
@ -97,7 +97,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
|
||||
init {
|
||||
liveDataQsRecordBean.value = QsRecordBean(id = UUID.randomUUID().toString())
|
||||
Log.e("jingo", "EvaluationResultViewModel 创建了 ${hashCode()}")
|
||||
viewModelScope.launch {
|
||||
mapController.onMapClickFlow.collect {
|
||||
liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText()
|
||||
@ -111,7 +110,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
|
||||
override fun onCleared() {
|
||||
super.onCleared()
|
||||
Log.e("jingo", "EvaluationResultViewModel 销毁了 ${hashCode()}")
|
||||
mapController.markerHandle.removeMarker(markerTitle)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
mapController.lineHandler.removeLine()
|
||||
@ -223,7 +221,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
* 获取问题环节列表和初步问题
|
||||
*/
|
||||
fun getProblemLinkList() {
|
||||
Log.e("jingo", "getProblemLinkList S")
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val list = roomAppDatabase.getScRootCauseAnalysisDao().findAllData()
|
||||
list?.let { tl ->
|
||||
@ -242,11 +239,9 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
if (liveDataQsRecordBean.value!!.problemLink.isEmpty()) {
|
||||
liveDataQsRecordBean.value!!.problemLink = middleList[0]
|
||||
Log.e("jingo", "getProblemLinkList ${middleList[0]}")
|
||||
}
|
||||
if (liveDataQsRecordBean.value!!.cause.isEmpty()) {
|
||||
liveDataQsRecordBean.value!!.cause = rightList[0].text
|
||||
Log.e("jingo", "getProblemLinkList ${rightList[0].text}")
|
||||
}
|
||||
liveDataQsRecordBean.postValue(liveDataQsRecordBean.value)
|
||||
// liveDataMiddleTypeList.postValue(middleList)
|
||||
@ -254,14 +249,12 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.e("jingo", "getProblemLinkList E")
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取问题类型列表和问题现象
|
||||
*/
|
||||
private suspend fun getProblemList(classType: String) {
|
||||
Log.e("jingo", "getProblemList S")
|
||||
val typeList = roomAppDatabase.getScProblemTypeDao().findProblemTypeList(classType)
|
||||
typeList?.let { tl ->
|
||||
if (tl.isNotEmpty()) {
|
||||
@ -279,18 +272,15 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
}
|
||||
if (liveDataQsRecordBean.value!!.problemType.isEmpty()) {
|
||||
liveDataQsRecordBean.value!!.problemType = typeTitleList[0]
|
||||
Log.e("jingo", "getProblemList ${typeTitleList[0]}")
|
||||
}
|
||||
// liveDataMiddleTypeList.postValue(typeTitleList)
|
||||
if (liveDataQsRecordBean.value!!.phenomenon.isEmpty()) {
|
||||
liveDataQsRecordBean.value!!.phenomenon = phenomenonRightList[0].text
|
||||
Log.e("jingo", "getProblemList ${phenomenonRightList[0].text}")
|
||||
}
|
||||
liveDataQsRecordBean.postValue(liveDataQsRecordBean.value)
|
||||
liveDataRightTypeList.postValue(phenomenonRightList)
|
||||
}
|
||||
}
|
||||
Log.e("jingo", "getProblemList E")
|
||||
}
|
||||
|
||||
/**
|
||||
@ -341,7 +331,6 @@ class EvaluationResultViewModel @Inject constructor(
|
||||
mDialog.dismiss()
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val realm = Realm.getDefaultInstance()
|
||||
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
|
||||
realm.executeTransaction {
|
||||
val objects = it.where(QsRecordBean::class.java)
|
||||
.equalTo("id", liveDataQsRecordBean.value?.id).findFirst()
|
||||
|
@ -34,7 +34,6 @@ class PhenomenonFragment :
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
_binding = FragmentPhenomenonBinding.inflate(inflater, container, false)
|
||||
Log.e("jingo", "PhenomenonFragment onCreateView ${hashCode()}")
|
||||
return binding.root
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ class LayerManagerViewModel() : ViewModel() {
|
||||
}
|
||||
|
||||
fun saveLayerConfigList(context: Context, listData: List<ImportConfig>) {
|
||||
SPStaticUtils.put(Constant.EVENT_LAYER_MANAGER_CHANGE, gson.toJson(listData))
|
||||
Constant.LAYER_CONFIG_LIST = listData
|
||||
// 发送新的配置数据
|
||||
viewModelScope.launch {
|
||||
FlowEventBus.post(Constant.EVENT_LAYER_MANAGER_CHANGE, listData)
|
||||
|
@ -34,15 +34,12 @@ class OfflineMapCityListAdapter(
|
||||
val cityBean = data[it.tag as Int]
|
||||
when (cityBean.status) {
|
||||
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.ERROR -> {
|
||||
Log.e("jingo", "开始下载 ${cityBean.status}")
|
||||
downloadManager.start(cityBean.id)
|
||||
}
|
||||
FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> {
|
||||
Log.e("jingo", "暂停 ${cityBean.status}")
|
||||
downloadManager.pause(cityBean.id)
|
||||
}
|
||||
else -> {
|
||||
Log.e("jingo", "暂停 ${cityBean.status}")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -85,7 +82,6 @@ class OfflineMapCityListAdapter(
|
||||
if (id == holder.tag) {
|
||||
val binding: AdapterOfflineMapCityBinding =
|
||||
holder.viewBinding as AdapterOfflineMapCityBinding
|
||||
Log.e("jingo", "进度条更新 $id ${bean.id} ${holder.tag} ")
|
||||
changeViews(binding, bean)
|
||||
}
|
||||
}
|
||||
@ -95,7 +91,6 @@ class OfflineMapCityListAdapter(
|
||||
|
||||
|
||||
private fun changeViews(binding: AdapterOfflineMapCityBinding, cityBean: OfflineMapCityBean) {
|
||||
Log.e("jingo", "changeViews ${cityBean.status}")
|
||||
binding.offlineMapProgress.progress =
|
||||
(cityBean.currentSize * 100 / cityBean.fileSize).toInt()
|
||||
when (cityBean.status) {
|
||||
|
@ -115,11 +115,17 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) :
|
||||
viewModel.readRealmData()
|
||||
// 定位到指定位置
|
||||
niMapController.mMapView.vtmMap.animator()
|
||||
.animateTo(GeoPoint(40.031657799200346, 116.32207834810715))
|
||||
}
|
||||
R.id.personal_center_menu_task_list -> {
|
||||
findNavController().navigate(R.id.TaskManagerFragment)
|
||||
.animateTo(GeoPoint( 39.80392140200183, 116.51446703352337 ))
|
||||
}
|
||||
// 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 -> {
|
||||
findNavController().navigate(R.id.QsRecordListFragment)
|
||||
}
|
||||
|
@ -26,7 +26,6 @@ class QsRecordListViewModel @Inject constructor(
|
||||
fun getList(context: Context) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val realm = Realm.getDefaultInstance()
|
||||
Log.e("jingo","realm hashCOde ${realm.hashCode()}")
|
||||
val objects = realm.where(QsRecordBean::class.java).findAll()
|
||||
liveDataQSList.postValue(realm.copyFromRealm(objects))
|
||||
}
|
||||
|
@ -39,17 +39,14 @@ class TaskListAdapter(
|
||||
if (taskBean.hadLinkDvoList.isNotEmpty()) {
|
||||
when (taskBean.status) {
|
||||
FileDownloadStatus.NONE, FileDownloadStatus.UPDATE, FileDownloadStatus.PAUSE, FileDownloadStatus.IMPORT, FileDownloadStatus.ERROR -> {
|
||||
Log.e("jingo", "开始下载 ${taskBean.status}")
|
||||
downloadManager.start(taskBean.id)
|
||||
}
|
||||
|
||||
FileDownloadStatus.LOADING, FileDownloadStatus.WAITING -> {
|
||||
Log.e("jingo", "暂停 ${taskBean.status}")
|
||||
downloadManager.pause(taskBean.id)
|
||||
}
|
||||
|
||||
else -> {
|
||||
Log.e("jingo", "暂停 ${taskBean.status}")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -61,7 +58,6 @@ class TaskListAdapter(
|
||||
private val uploadBtnClick = View.OnClickListener() {
|
||||
if (it.tag != null) {
|
||||
val taskBean = data[it.tag as Int]
|
||||
Log.e("jingo", "开始上传 ${taskBean.syncStatus}")
|
||||
if (taskBean.hadLinkDvoList.isNotEmpty()) {
|
||||
when (taskBean.syncStatus) {
|
||||
FileUploadStatus.NONE, FileUploadStatus.UPLOADING, FileUploadStatus.ERROR, FileUploadStatus.WAITING -> {
|
||||
|
@ -87,12 +87,30 @@ class SignUtil {
|
||||
*/
|
||||
fun getSignBottomRightText(data: RenderEntity): String {
|
||||
return when (data.code) {
|
||||
//常点限速
|
||||
//条件点限速
|
||||
4003 -> getConditionLimitText(data)
|
||||
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 {
|
||||
try {
|
||||
//限速标志 0 限速开始 1 限速解除
|
||||
return when (data.properties["speed_flag"]) {
|
||||
return when (data.properties["speedFlag"]) {
|
||||
"1" -> return R.drawable.icon_speed_limit_off
|
||||
else -> return R.drawable.icon_speed_limit
|
||||
}
|
||||
@ -186,7 +204,7 @@ class SignUtil {
|
||||
private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int {
|
||||
try {
|
||||
//限速标志 0 限速开始 1 限速解除
|
||||
return when (data.properties["speed_flag"]) {
|
||||
return when (data.properties["speedFlag"]) {
|
||||
"1" -> return R.drawable.icon_conditional_speed_limit_off
|
||||
else -> return R.drawable.icon_conditional_speed_limit
|
||||
}
|
||||
|
After Width: | Height: | Size: 498 B |
BIN
app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
@ -3,10 +3,10 @@
|
||||
android:shape="rectangle">
|
||||
|
||||
<corners
|
||||
android:bottomLeftRadius="4dp"
|
||||
android:bottomRightRadius="4dp"
|
||||
android:topLeftRadius="4dp"
|
||||
android:topRightRadius="4dp" />
|
||||
android:bottomLeftRadius="8dp"
|
||||
android:bottomRightRadius="8dp"
|
||||
android:topLeftRadius="8dp"
|
||||
android:topRightRadius="8dp" />
|
||||
|
||||
<solid android:color="#C42E303B" />
|
||||
|
||||
|
@ -63,6 +63,61 @@
|
||||
app:layout_constraintLeft_toLeftOf="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
|
||||
android:id="@+id/main_activity_flow"
|
||||
android:layout_width="0dp"
|
||||
@ -408,8 +463,8 @@
|
||||
<ImageView
|
||||
android:id="@+id/main_bottom_offline_map"
|
||||
style="@style/main_activity_bottom_sheet_icon"
|
||||
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
|
||||
android:background="@drawable/icon_main_bottom_offline_map"
|
||||
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
|
||||
app:layout_constraintBottom_toTopOf="@id/main_bottom_offline_map_text"
|
||||
app:layout_constraintLeft_toRightOf="@id/main_bottom_home"
|
||||
app:layout_constraintRight_toLeftOf="@id/main_bottom_route"
|
||||
@ -420,10 +475,10 @@
|
||||
android:id="@+id/main_bottom_offline_map_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
|
||||
android:text="离线地图"
|
||||
android:textColor="@color/blue"
|
||||
android:textSize="10sp"
|
||||
android:onClick="@{()->mainActivity.onClickOfflineMapFragment()}"
|
||||
app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg"
|
||||
app:layout_constraintLeft_toLeftOf="@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"
|
||||
app:layout_constraintBottom_toTopOf="@id/main_bottom_route_text"
|
||||
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_constraintTop_toTopOf="@id/main_bottom_task"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
@ -446,6 +502,7 @@
|
||||
android:text="路径规划"
|
||||
android:textColor="@color/blue"
|
||||
android:textSize="10sp"
|
||||
android:onClick="@{()->mainActivity.onClickRouteFragment()}"
|
||||
app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg"
|
||||
app:layout_constraintLeft_toLeftOf="@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:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="visible"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="
|
||||
main_bottom_route_text,
|
||||
main_bottom_offline_map_text,
|
||||
@ -476,5 +533,4 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</layout>
|
@ -46,10 +46,10 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/sign_bottom_text"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginRight="15dp"
|
||||
android:gravity="center"
|
||||
android:text="其他信息"
|
||||
android:layout_alignRight="@id/sign_main_bg"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -97,7 +97,6 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/task_progress_text"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignTop="@id/task_download_btn"
|
||||
|
@ -5,7 +5,6 @@
|
||||
android:id="@+id/console_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/console_bg"
|
||||
tools:context=".ui.fragment.console.ConsoleFragment">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
|
@ -128,12 +128,16 @@
|
||||
android:src="@drawable/icon_console_task"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_task_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="测评任务"
|
||||
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_constraintTop_toTopOf="@id/console_task_bg" />
|
||||
|
||||
@ -154,12 +158,16 @@
|
||||
android:src="@drawable/icon_console_evaluation"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_evaluation_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="测评结果"
|
||||
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_constraintTop_toTopOf="@id/console_evaluation_bg" />
|
||||
|
||||
@ -180,12 +188,16 @@
|
||||
android:src="@drawable/icon_console_offline_map"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_offline_map_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="离线地图"
|
||||
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_constraintTop_toTopOf="@id/console_offline_map_bg" />
|
||||
|
||||
@ -205,12 +217,16 @@
|
||||
android:src="@drawable/icon_console_route"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_route_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="路径规划"
|
||||
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_constraintTop_toTopOf="@id/console_route_bg" />
|
||||
|
||||
@ -232,12 +248,16 @@
|
||||
android:src="@drawable/icon_console_layer_setting"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_layer_setting_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="图层设置"
|
||||
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_constraintTop_toTopOf="@id/console_layer_setting_bg" />
|
||||
|
||||
@ -257,12 +277,16 @@
|
||||
android:src="@drawable/icon_console_personal_center"
|
||||
app:layout_constraintBottom_toBottomOf="@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
|
||||
android:id="@+id/console_personal_center_icon_text"
|
||||
style="@style/console_on_left_bottom_text"
|
||||
android:text="个人中心"
|
||||
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_constraintTop_toTopOf="@id/console_personal_center_bg" />
|
||||
|
||||
@ -469,7 +493,7 @@
|
||||
app:layout_constraintLeft_toLeftOf="@id/console_track_bg"
|
||||
app:layout_constraintRight_toLeftOf="@id/console_track_text"
|
||||
app:layout_constraintTop_toTopOf="@id/console_track_bg"
|
||||
app:layout_constraintVertical_chainStyle="spread" />
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/console_track_icon"
|
||||
|
@ -46,8 +46,8 @@
|
||||
app:tabGravity="center"
|
||||
app:tabIndicator="@null"
|
||||
app:tabIndicatorHeight="0dp"
|
||||
app:tabMaxWidth="150dp"
|
||||
app:tabMinWidth="150dp"
|
||||
app:tabMaxWidth="110dp"
|
||||
app:tabMinWidth="110dp"
|
||||
app:tabMode="scrollable"
|
||||
app:tabPaddingEnd="6dp"
|
||||
app:tabPaddingStart="6dp"
|
||||
|
@ -45,8 +45,8 @@
|
||||
app:tabGravity="center"
|
||||
app:tabIndicator="@null"
|
||||
app:tabIndicatorHeight="0dp"
|
||||
app:tabMaxWidth="150dp"
|
||||
app:tabMinWidth="150dp"
|
||||
app:tabMaxWidth="110dp"
|
||||
app:tabMinWidth="110dp"
|
||||
app:tabMode="scrollable"
|
||||
app:tabPaddingEnd="6dp"
|
||||
app:tabPaddingStart="6dp"
|
||||
|
@ -33,18 +33,18 @@
|
||||
<group android:checkableBehavior="single">
|
||||
<item android:title="小标题">
|
||||
<menu>
|
||||
<item
|
||||
android:id="@+id/personal_center_menu_task_list"
|
||||
android:icon="@drawable/ic_baseline_format_list_bulleted_24"
|
||||
android:title="任务列表" />
|
||||
<item
|
||||
android:id="@+id/personal_center_menu_qs_record_list"
|
||||
android:icon="@drawable/ic_baseline_playlist_add_check_24"
|
||||
android:title="测评结果" />
|
||||
<item
|
||||
android:id="@+id/personal_center_menu_layer_manager"
|
||||
android:icon="@drawable/ic_baseline_layers_24"
|
||||
android:title="图层管理" />
|
||||
<!-- <item-->
|
||||
<!-- android:id="@+id/personal_center_menu_task_list"-->
|
||||
<!-- android:icon="@drawable/ic_baseline_format_list_bulleted_24"-->
|
||||
<!-- android:title="任务列表" />-->
|
||||
<!-- <item-->
|
||||
<!-- android:id="@+id/personal_center_menu_qs_record_list"-->
|
||||
<!-- android:icon="@drawable/ic_baseline_playlist_add_check_24"-->
|
||||
<!-- android:title="测评结果" />-->
|
||||
<!-- <item-->
|
||||
<!-- android:id="@+id/personal_center_menu_layer_manager"-->
|
||||
<!-- android:icon="@drawable/ic_baseline_layers_24"-->
|
||||
<!-- android:title="图层管理" />-->
|
||||
|
||||
<item
|
||||
android:id="@+id/personal_center_menu_test"
|
||||
|
@ -40,7 +40,7 @@
|
||||
<!--金色 -->
|
||||
<!--粉红色 -->
|
||||
<!--亮粉红色 -->
|
||||
<color name="orange">#FFA500</color> <!--橙色 -->
|
||||
<color name="orange">#FFBC6E</color> <!--橙色 -->
|
||||
<!--亮肉色 -->
|
||||
<!--暗桔黄色 -->
|
||||
<!--珊瑚色 -->
|
||||
|
@ -24,7 +24,7 @@
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:textColor">@color/white</item>
|
||||
<item name="android:textSize">18sp</item>
|
||||
<item name="android:layout_margin">5dp</item>
|
||||
|
||||
</style>
|
||||
|
||||
<style name="title_default_style" comment="默认顶标题样式">
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#f4f4f4"
|
||||
version="1" xmlns="http://opensciencemap.org/rendertheme"
|
||||
xsi:schemaLocation="http://opensciencemap.org/rendertheme
|
||||
version="1" xmlns="http://opensciencemap.org/rendertheme" xsi:schemaLocation="http://opensciencemap.org/rendertheme
|
||||
https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd">
|
||||
|
||||
<!--###### TRANSFORM tags ######-->
|
||||
@ -46,8 +45,8 @@
|
||||
<!--references-->
|
||||
<style-text style="bold" fill="#606060" id="ref" k="ref" priority="2" size="12" stroke="#ffffff"
|
||||
stroke-width="2.0" />
|
||||
<style-text caption="true" style="bold" fill="#ffffff" id="ref-caption" k="ref" priority="2"
|
||||
size="12" bg-fill="#45a976" />
|
||||
<style-text style="bold" bg-fill="#45a976" caption="true" fill="#ffffff" id="ref-caption"
|
||||
k="ref" priority="2" size="12" />
|
||||
<!--ferry-->
|
||||
<style-text style="bold" fill="#606060" id="ferry" k="name" size="12" stroke="#ffffff"
|
||||
stroke-width="2.0" />
|
||||
@ -174,7 +173,7 @@
|
||||
<style-symbol id="oneway" repeat="true" src="assets:symbols/oneway.svg" />
|
||||
|
||||
<!-- omdb -->
|
||||
<style-line id="boundaryType" width="0.1" stipple-width="0.1" />
|
||||
<style-line id="boundaryType" stipple-width="0.1" width="0.1" />
|
||||
|
||||
<!--###### ASSIGNMENT ######-->
|
||||
|
||||
@ -1480,18 +1479,19 @@
|
||||
</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">
|
||||
<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 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>
|
||||
<!--道路箭头 objectArrow-->
|
||||
<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>
|
||||
<!--人行横道 objectcrosswalk-->
|
||||
<m v="object_crosswalk">
|
||||
@ -1503,7 +1503,7 @@
|
||||
</m>
|
||||
<!--杆状物 objectpole-->
|
||||
<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>
|
||||
<!--对象标志 objectsymbol-->
|
||||
<m v="object_symbol">
|
||||
@ -1514,7 +1514,7 @@
|
||||
<area fill="#8800cc00" stroke="#00cc00" stroke-width="0.2"></area>
|
||||
</m>
|
||||
|
||||
<m zoom-min="15" zoom-max="19">
|
||||
<m zoom-max="19" zoom-min="15">
|
||||
<text use="ferry" />
|
||||
</m>
|
||||
|
||||
@ -1538,19 +1538,20 @@
|
||||
|
||||
<m k="nav_style">
|
||||
<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">
|
||||
<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 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>
|
||||
<line stroke="#33aaaa" width="0.3" stipple-width="0.5"/>
|
||||
<line stipple-width="0.5" stroke="#33aaaa" width="0.3" />
|
||||
</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" />
|
||||
</m>
|
||||
</m>
|
||||
@ -1560,157 +1561,147 @@
|
||||
<m v="OMDB_LANE_NUM">
|
||||
<m k="laneNum">
|
||||
<m v="1">
|
||||
<line stroke="#545D6C" width="3"/>
|
||||
<line stroke="#545D6C" width="3" />
|
||||
</m>
|
||||
<m v="2">
|
||||
<line stroke="#545D6C" width="6"/>
|
||||
<line stroke="#545D6C" width="6" />
|
||||
</m>
|
||||
<m v="3">
|
||||
<line stroke="#545D6C" width="9"/>
|
||||
<line stroke="#545D6C" width="9" />
|
||||
</m>
|
||||
<m v="4">
|
||||
<line stroke="#545D6C" width="12"/>
|
||||
<line stroke="#545D6C" width="12" />
|
||||
</m>
|
||||
<m v="5">
|
||||
<line stroke="#545D6C" width="15"/>
|
||||
<line stroke="#545D6C" width="15" />
|
||||
</m>
|
||||
<m v="6">
|
||||
<line stroke="#545D6C" width="18" />
|
||||
</m>
|
||||
<m v="7">
|
||||
<line stroke="#545D6C" width="21"/>
|
||||
<line stroke="#545D6C" width="21" />
|
||||
</m>
|
||||
<m v="8">
|
||||
<line stroke="#545D6C" width="24"/>
|
||||
<line stroke="#545D6C" width="24" />
|
||||
</m>
|
||||
<m v="9">
|
||||
<line stroke="#545D6C" width="27"/>
|
||||
<line stroke="#545D6C" width="27" />
|
||||
</m>
|
||||
<m v="10">
|
||||
<line stroke="#545D6C" width="30"/>
|
||||
<line stroke="#545D6C" width="30" />
|
||||
</m>
|
||||
<m v="11">
|
||||
<line stroke="#545D6C" width="33"/>
|
||||
<line stroke="#545D6C" width="33" />
|
||||
</m>
|
||||
<m v="12">
|
||||
<line stroke="#545D6C" width="36"/>
|
||||
<line stroke="#545D6C" width="36" />
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
<!-- 道路线 -->
|
||||
<m v="OMDB_RD_LINK">
|
||||
<line stroke="#9c9c9c" width="1"/>
|
||||
<line stroke="#9c9c9c" width="1" />
|
||||
</m>
|
||||
<!--道路种别-->
|
||||
<m v="OMDB_RD_LINK_KIND">
|
||||
<m k="kind">
|
||||
<m v="1">
|
||||
<line stroke="#fcacd4" width="1"/>
|
||||
</m>
|
||||
<m v="2">
|
||||
<line stroke="#dcacfc" width="1"/>
|
||||
</m>
|
||||
<m v="3">
|
||||
<line stroke="#fc9c9c" width="1"/>
|
||||
</m>
|
||||
<m v="4">
|
||||
<line stroke="#fcd484" width="1"/>
|
||||
</m>
|
||||
<m v="5">
|
||||
<line stroke="#ecfccc" width="1"/>
|
||||
</m>
|
||||
<m v="6">
|
||||
<line stroke="#acec84" width="1"/>
|
||||
</m>
|
||||
<m v="7">
|
||||
<line stroke="#806048" width="1"/>
|
||||
</m>
|
||||
<m v="8">
|
||||
<line stroke="#fcfc7c" width="1"/>
|
||||
</m>
|
||||
<m v="9">
|
||||
<line stroke="#acc4fc" width="1"/>
|
||||
</m>
|
||||
<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>
|
||||
<outline-layer id="kind0" stroke="#44000000" width="0.1" />
|
||||
<outline-layer id="kind1" stroke="#aa807040" width="0.1" />
|
||||
<m k="kind" v="1">
|
||||
<line blur="0.3" outline="kind0" use="highway:z11" />
|
||||
</m>
|
||||
<m k="kind" v="2|3">
|
||||
<line outline="kind0" use="trunk" />
|
||||
</m>
|
||||
<m k="kind" v="4">
|
||||
<line outline="kind0" use="primary:z11" />
|
||||
</m>
|
||||
<m k="kind" v="5|6">
|
||||
<line outline="kind0" use="secondary:z11" />
|
||||
</m>
|
||||
<m k="kind" v="7">
|
||||
<line outline="kind0" use="tertiary" />
|
||||
</m>
|
||||
<m k="kind" v="8">
|
||||
<line outline="kind0" use="residential" />
|
||||
</m>
|
||||
<m k="kind" v="9|10">
|
||||
<line outline="kind0" use="footway:z17" />
|
||||
</m>
|
||||
<m k="kind" v="11|13">
|
||||
<line outline="kind0" use="ferry" />
|
||||
</m>
|
||||
<m k="kind" v="15">
|
||||
<line outline="kind0" use="highway:cycleway" />
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<!--常规点限速-->
|
||||
<m v="OMDB_SPEEDLIMIT">
|
||||
<m k="speedFlag">
|
||||
<m v="0">
|
||||
<!-- <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"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_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>
|
||||
</m>
|
||||
<m v="1">
|
||||
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_1.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>
|
||||
</m>
|
||||
<m k="speedFlag" v="0">
|
||||
<!-- <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"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_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 k="speedFlag" v="1">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4002_1.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="OMDB_SPEEDLIMIT_COND">
|
||||
<m k="speedFlag">
|
||||
<m v="0">
|
||||
<!-- <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"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_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>
|
||||
</m>
|
||||
<m v="1">
|
||||
<caption k="maxSpeed" fill="#000000" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_1.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>
|
||||
</m>
|
||||
<m k="speedFlag" v="0">
|
||||
<!-- <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"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_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 k="speedFlag" v="1">
|
||||
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
|
||||
stroke-width="1.0"></caption>
|
||||
<symbol src="assets:omdb/icon_4003_1.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="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>-->
|
||||
<caption k="maxSpeed" fill="#000000" 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"
|
||||
<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-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 v="1">
|
||||
<caption k="maxSpeed" fill="#000000" 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"
|
||||
<m k="speedFlag" v="1">
|
||||
<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-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="OMDB_LANE_LINK_LG">
|
||||
<line stroke="#ecf0f1" width="0.1" dasharray="35,35"/>
|
||||
<line dasharray="35,35" stroke="#ecf0f1" width="0.1" />
|
||||
</m>
|
||||
<!-- 道路边界类型 -->
|
||||
<m v="OMDB_RDBOUND_BOUNDARYTYPE">
|
||||
<line stroke="#ffffff" width="0.1"/>
|
||||
<line stroke="#ffffff" width="0.1" />
|
||||
</m>
|
||||
<!-- 车道边界类型 -->
|
||||
<m v="OMDB_LANE_MARK_BOUNDARYTYPE">
|
||||
@ -1723,19 +1714,19 @@
|
||||
<m v="0|1">
|
||||
<m k="markColor">
|
||||
<m v="0|1">
|
||||
<line stroke="#ffffff" use="boundaryType"/>
|
||||
<line stroke="#ffffff" use="boundaryType" />
|
||||
</m>
|
||||
<m v="2">
|
||||
<line stroke="#eccc68" use="boundaryType"/>
|
||||
<line stroke="#eccc68" use="boundaryType" />
|
||||
</m>
|
||||
<m v="6">
|
||||
<line stroke="#0000ff" use="boundaryType"/>
|
||||
<line stroke="#0000ff" use="boundaryType" />
|
||||
</m>
|
||||
<m v="7">
|
||||
<line stroke="#00ff00" use="boundaryType"/>
|
||||
<line stroke="#00ff00" use="boundaryType" />
|
||||
</m>
|
||||
<m v="9">
|
||||
<line stroke="#8e44ad" use="boundaryType"/>
|
||||
<line stroke="#8e44ad" use="boundaryType" />
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
@ -1743,31 +1734,37 @@
|
||||
<m v="2">
|
||||
<m k="markColor">
|
||||
<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 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 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 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 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 v="4">
|
||||
<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 v="5">-->
|
||||
<!-- <line outline="#ffffff" fix="true" src="assets:omdb/icon_close.png" stroke="#ffffffff" use="boundaryType"/>-->
|
||||
<!-- </m>-->
|
||||
<!-- <!–铺设路面边缘–>-->
|
||||
<!-- <m v="5">-->
|
||||
<!-- <line outline="#ffffff" fix="true" src="assets:omdb/icon_close.png" stroke="#ffffffff" use="boundaryType"/>-->
|
||||
<!-- </m>-->
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
@ -1776,30 +1773,39 @@
|
||||
<m v="OMDB_LINK_DIRECT">
|
||||
<m k="direct">
|
||||
<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 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>
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
<!--交通灯-->
|
||||
<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 v="OMDB_RESTRICTION">
|
||||
<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 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 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 v="OMDB_LINK_NAME">
|
||||
<text use="road"></text>
|
||||
</m>
|
||||
</m>
|
||||
</rendertheme>
|
BIN
collect-library/src/main/assets/omdb/area_test.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 5.5 KiB |
@ -1,40 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="140"
|
||||
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>
|
||||
<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>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.4 KiB |
@ -105,7 +105,6 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP
|
||||
}
|
||||
|
||||
private fun initOMDBVectorTileLayer() {
|
||||
|
||||
// 初始化OMDB参考相关图层
|
||||
omdbReferenceTileLayer = VectorTileLayer(mMapView.vtmMap, omdbReferenceTileSource)
|
||||
omdbReferenceLabelLayer = LabelLayer(
|
||||
|
@ -263,7 +263,6 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
|
||||
mContext.lifecycleScope.launch(Dispatchers.IO) {
|
||||
var list = mutableListOf<QsRecordBean>()
|
||||
val realm = Realm.getDefaultInstance()
|
||||
Log.e("jingo", "realm hashCOde ${realm.hashCode()}")
|
||||
realm.executeTransaction {
|
||||
val objects = realm.where<QsRecordBean>().findAll()
|
||||
list = realm.copyFromRealm(objects)
|
||||
|
@ -89,7 +89,6 @@ public class MyItemizedLayer extends ItemizedLayer {
|
||||
private boolean activateSelectedItems(MotionEvent event, ActiveItem task) {
|
||||
int size = this.mItemList.size();
|
||||
|
||||
Log.e("jingo", "地图点击 size =" + size);
|
||||
if (size == 0) {
|
||||
return false;
|
||||
} else {
|
||||
|
2
vtm
@ -1 +1 @@
|
||||
Subproject commit dd13e533c38b5738ab404c2737d7ccadeff01323
|
||||
Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a
|