统一地图图标渲染尺寸

优化提前显示面板,详细信息面板
增加多媒体照片
This commit is contained in:
squallzhjch 2023-06-29 17:22:40 +08:00
parent 2fe71fe94f
commit c00592f6d5
15 changed files with 273 additions and 107 deletions

View File

@ -21,5 +21,7 @@ data class SignBean(
//底部右侧文字
val bottomRightText: String = "",
//捕捉数据
val renderEntity: RenderEntity
val renderEntity: RenderEntity,
//道路信息排序用的字段
val index: Int = 0
) : Parcelable

View File

@ -259,11 +259,13 @@ class MainViewModel @Inject constructor(
name = SignUtil.getSignNameText(element),
bottomRightText = SignUtil.getSignBottomRightText(element),
renderEntity = element,
isMoreInfo = SignUtil.isMoreInfo(element)
isMoreInfo = SignUtil.isMoreInfo(element),
index = SignUtil.getRoadInfoIndex(element)
)
Log.e("jingo", "捕捉到的数据code ${element.code}")
when (element.code) {
2002, 2008, 2010, 2041 -> topSignList.add(
//车道数,种别,功能等级,线限速,道路方向
2041, 2008, 2002, 2019, 2010 -> topSignList.add(
signBean
)
4002, 4003, 4004, 4010, 4022, 4601 -> signList.add(
@ -293,7 +295,8 @@ class MainViewModel @Inject constructor(
}
}
liveDataTopSignList.postValue(topSignList.distinctBy { it.distance })
liveDataTopSignList.postValue(topSignList.distinctBy { it.name }.sortedBy { it.index })
liveDataSignList.postValue(signList.sortedBy { it.distance })
val speechText = SignUtil.getRoadSpeechText(topSignList)
withContext(Dispatchers.Main) {

View File

@ -83,6 +83,9 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
bd.signSecondIcon.text = minSpeed
}
}
bd.signMainBg.setOnClickListener {
listener?.onItemClick(item)
}
} else if (holder.viewBinding is AdapterSignLaneinfoBinding) {
val bd = holder.viewBinding
bd.signMoreIconsLayout.removeAllViews()
@ -123,10 +126,11 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
lineViewE.layoutParams = ViewGroup.LayoutParams(24, 80)
lineViewE.background = context.getDrawable(R.drawable.shape_vertical_dashed_line)
bd.signMoreIconsLayout.addView(lineViewE, lineViewE.layoutParams)
bd.root.setOnClickListener {
listener?.onItemClick(item)
}
}
holder.viewBinding.root.setOnClickListener {
listener?.onItemClick(item)
}
holder.tag = item.name + position
}

View File

@ -1,6 +1,5 @@
package com.navinfo.omqs.ui.fragment.evaluationresult
import android.app.Dialog
import android.os.Build
import android.os.Bundle
import android.util.Log
@ -8,20 +7,22 @@ import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.databinding.DataBindingUtil
import androidx.navigation.NavOptions
import androidx.navigation.findNavController
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.navinfo.omqs.Constant
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding
import com.navinfo.omqs.ui.dialog.FirstDialog
import com.navinfo.omqs.ui.fragment.BaseFragment
import com.navinfo.omqs.ui.other.shareViewModels
import dagger.hilt.android.AndroidEntryPoint
import androidx.navigation.findNavController
import androidx.navigation.fragment.findNavController
import com.navinfo.omqs.ui.dialog.FirstDialog
import org.videolan.vlc.Util
@AndroidEntryPoint
class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
@ -32,6 +33,10 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
*/
private val viewModel by shareViewModels<EvaluationResultViewModel>("QsRecode")
private val pictureAdapter by lazy {
PictureAdapter()
}
// private val args:EmptyFragmentArgs by navArgs()
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
@ -57,6 +62,8 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
adapter.refreshData(it)
}
binding.evaluationPictureViewpager
return binding.root
}
@ -92,6 +99,21 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
viewModel.deleteData(requireContext())
}
/**
* 照片view
*/
binding.evaluationPictureViewpager.adapter = pictureAdapter
val list = mutableListOf("1", "2", "3")
pictureAdapter.refreshData(list)
binding.evaluationPictureLeft.setOnClickListener(this)
binding.evaluationPictureRight.setOnClickListener(this)
val recyclerView = binding.evaluationPictureViewpager.getChildAt(0) as RecyclerView
recyclerView.setPadding(0, 0, Util.convertDpToPx(requireContext(), 50), 0)
recyclerView.clipToPadding = false
binding.evaluationVoice.setOnTouchListener { _, event ->
@ -112,6 +134,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
true
}
/**
* 读取元数据
*/
@ -250,6 +273,24 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
override fun onClick(v: View?) {
v?.let {
when (v.id) {
//照片左侧按钮
R.id.evaluation_picture_left -> {
val currentItem = binding.evaluationPictureViewpager.currentItem
if (currentItem > 0) {
binding.evaluationPictureViewpager.currentItem = currentItem - 1
} else {
}
}
//照片右侧按钮
R.id.evaluation_picture_right -> {
val currentItem = binding.evaluationPictureViewpager.currentItem
if (currentItem < pictureAdapter.data.size - 1) {
binding.evaluationPictureViewpager.currentItem = currentItem + 1
} else {
}
}
//上三项,打开面板
R.id.evaluation_class_type, R.id.evaluation_problem_type, R.id.evaluation_phenomenon -> {
activity?.run {

View File

@ -0,0 +1,21 @@
package com.navinfo.omqs.ui.fragment.evaluationresult
import android.view.LayoutInflater
import android.view.ViewGroup
import com.navinfo.omqs.databinding.AdapterPictureBinding
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder
class PictureAdapter : BaseRecyclerViewAdapter<String>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
val viewBinding =
AdapterPictureBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return BaseViewHolder(viewBinding)
}
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
val bd = holder.viewBinding as AdapterPictureBinding
bd.button.text = data[position]
}
}

View File

@ -24,6 +24,8 @@ class SignUtil {
2008 -> getKindText(data)
//道路方向
2010 -> getRoadDirectionText(data)
//常规线限速
2019 -> getLineSpeedLimitText(data)
//车道数
2041 -> getLaneNumText(data)
//常规点限速,条件点限速
@ -32,6 +34,13 @@ class SignUtil {
}
}
/**
* 常规线限速值
*/
private fun getLineSpeedLimitText(data: RenderEntity): String {
return "${data.properties["maxSpeed"]}"
}
/**
*获取道路功能等级文字
*/
@ -71,6 +80,8 @@ class SignUtil {
2008 -> "种别"
//道路方向
2010 -> "方向"
//常规线限速
2019 -> "线限速"
//车道数
2041 -> "车道数"
//常规点限速
@ -96,8 +107,11 @@ class SignUtil {
*/
fun getSignBottomRightText(data: RenderEntity): String {
return when (data.code) {
//条件点限速
4003 -> getConditionLimitText(data)
//电子眼
4010 -> data.properties["name"].toString()
else -> ""
}
}
@ -438,7 +452,6 @@ class SignUtil {
4010 -> true
else -> false
}
Log.e("jingo", "更多信息:${element.code} $isMore")
return isMore
}
@ -584,7 +597,6 @@ class SignUtil {
val itemObject = itemArray[i]
val type = typeArray[i]
var laneInfo = "laneinfo_${itemObject.toString().replace(",", "_")}"
Log.e("jingo", "车信图标 $laneInfo")
list.add(
LaneInfoItem(
id = getResId(
@ -614,5 +626,19 @@ class SignUtil {
R.drawable.laneinfo_0
}
}
/**
* 道路信息排序用的
*/
fun getRoadInfoIndex(element: RenderEntity): Int {
return when (element.code) {
2041 -> 0
2008 -> 1
2002 -> 2
2019 -> 3
2010 -> 4
else -> 999
}
}
}
}

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32">
<path
android:pathData="M0,16A16,16 0,1 1,16 32,16.018 16.018,0 0,1 0,16ZM3.049,16A12.951,12.951 0,1 0,16 3.049,12.966 12.966,0 0,0 3.049,16ZM16.243,21.84 L11.806,17.4a2,2 0,0 1,0 -2.819l4.432,-4.432a2,2 0,0 1,2.824 2.826L16.04,15.994l3.022,3.022a2,2 0,0 1,0.166 2.636l-0.166,0.188a2,2 0,0 1,-2.819 0Z"
android:fillColor="#4954ee"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32">
<path
android:pathData="M32,16A16,16 0,1 1,16 0,16.018 16.018,135 0,1 32,16ZM28.951,16A12.951,12.951 0,1 0,16 28.951,12.966 12.966,0 0,0 28.951,16ZM15.757,10.16 L20.194,14.6a2,2 0,0 1,-0 2.819l-4.432,4.432a2,2 0,0 1,-2.824 -2.826L15.96,16.006l-3.022,-3.022a2,2 0,0 1,-0.166 -2.636l0.166,-0.188a2,2 0,0 1,2.819 -0Z"
android:fillColor="#6917c2"/>
</vector>

View File

@ -4,7 +4,7 @@
android:left="-300dp"
android:right="-300dp">
<rotate
android:drawable="@drawable/shape_dashed_line"
android:drawable="@drawable/laneinfo_1_2"
android:fromDegrees="90" />
</item>
</layer-list>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name" />
</FrameLayout>

View File

@ -69,8 +69,9 @@
android:layout_height="wrap_content"
android:layout_alignBottom="@id/sign_main_bg"
android:layout_marginLeft="2dp"
android:padding="4dp"
android:layout_toRightOf="@id/sign_main_bg"
android:background="@drawable/icon_sign_info"
android:src="@drawable/icon_sign_info"
android:visibility="gone" />
<ImageView

View File

@ -24,9 +24,9 @@
android:id="@+id/evaluation_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/selector_btn_back_xml"
android:layout_marginLeft="12dp"
android:layout_marginTop="14dp"
android:drawableLeft="@drawable/selector_btn_back_xml"
android:text="Mark"
android:textColor="@color/default_blue_text_color"
android:textSize="16sp"
@ -49,10 +49,10 @@
android:id="@+id/evaluation_bar_cancel"
android:layout_width="40dp"
android:layout_height="40dp"
android:visibility="gone"
android:layout_marginRight="10dp"
android:background="@color/transparent"
android:src="@drawable/icon_fragment_close"
android:visibility="gone"
app:layout_constraintRight_toLeftOf="@id/evaluation_bar_save"
app:layout_constraintTop_toTopOf="@id/evaluation_bar_save" />
@ -196,12 +196,12 @@
android:elevation="2dp"
android:gravity="start"
android:hint="请输入备注信息"
android:paddingLeft="12dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:inputType="textMultiLine"
android:lines="3"
android:maxLines="3"
android:paddingLeft="12dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:text="@={viewModel.liveDataQsRecordBean.description}"
android:textSize="12sp" />
@ -212,8 +212,8 @@
android:layout_height="1dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="26dp"
android:layout_marginBottom="20dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="20dp"
android:background="#D6DBF0" />
<TextView
@ -224,6 +224,44 @@
android:textColor="@color/default_blue_text_color"
android:textSize="16sp" />
<!--
这种效果也好实现,主要的关键点是 Android:clipChildren=”false” 这个属性。
1.配置ViewPager 和其父布局的 android:clipChildren属性为”false”.
(android:clipChildren表示是否限制子View在其范围内默认为true. 代码设置setClipChildren(false))
因为如果clipChildren属性设置为true,就表明我们要将children给clip掉就是说对于子元素来说超出当前view的部分都会被切掉那我们在这里把它设置成false就表明超出view的部分不要切掉依然显示。
注意setClipChildren(false)在3.0以上版本中,开启了硬件加速后将不能正常工作,所以需要将其设置为软件加速。设置软硬件加速使用 setLayerType(View.LAYER_TYPE_SOFTWARE, null); 也可以在布局文件中添加 android:layerType=”software”
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/evaluation_picture_left"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="4dp"
android:background="@drawable/icon_picture_left"
android:padding="5dp" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/evaluation_picture_viewpager"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_weight="1"
android:clipChildren="false" />
<ImageView
android:id="@+id/evaluation_picture_right"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="4dp"
android:background="@drawable/icon_picture_right"
android:padding="5dp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/evaluation_voice_recyclerview"
android:layout_width="match_parent"

View File

@ -174,7 +174,7 @@
<!-- omdb -->
<style-line id="boundaryType" stipple-width="0.1" width="0.1" />
<style-line id="s2e" dasharray="1,1" repeat-gap="3" repeat-start="0" stroke="#14582c"
<style-line dasharray="1,1" id="s2e" repeat-gap="3" repeat-start="0" stroke="#14582c"
width="0.1" />
<!--###### ASSIGNMENT ######-->
@ -1479,83 +1479,83 @@
</m>
</m>
<!-- &lt;!&ndash; 自定义渲染样式 &ndash;&gt;-->
<!-- <m k="navi_type" zoom-max="22" zoom-min="15">-->
<!-- &lt;!&ndash; 车道中心线 &ndash;&gt;-->
<!-- <m v="had_lane_link">-->
<!-- <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#ff0000"-->
<!-- width="0.3" />-->
<!-- </m>-->
<!-- &lt;!&ndash; 车道边线 &ndash;&gt;-->
<!-- <m v="had_lane_mark_link">-->
<!-- <line stipple-width="0.5" stroke="#0000ff" width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash;道路箭头 objectArrow&ndash;&gt;-->
<!-- <m v="object_arrow">-->
<!-- <area fade="5" fill="#88aaaa00" stroke="#ff0000" stroke-width="0.1"></area>-->
<!-- </m>-->
<!-- &lt;!&ndash;人行横道 objectcrosswalk&ndash;&gt;-->
<!-- <m v="object_crosswalk">-->
<!-- <area fill="#88800080" stroke="#ff0000" stroke-width="0.2"></area>-->
<!-- <caption style="bold" dy="12" fill="#4D2F08" k="name" size="14" stroke="#ffffff"-->
<!-- stroke-width="2.0" />-->
<!-- <caption style="bold" dy="-12" fill="#4D2F08" k="ele" size="12" stroke="#ffffff"-->
<!-- stroke-width="2.0" />-->
<!-- </m>-->
<!-- &lt;!&ndash;杆状物 objectpole&ndash;&gt;-->
<!-- <m v="object_pole">-->
<!-- <line stipple-width="0.5" stroke="#8800aaaa" width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash;对象标志 objectsymbol&ndash;&gt;-->
<!-- <m v="object_symbol">-->
<!-- <area fill="#880000cc" stroke="#0000cc" stroke-width="0.2"></area>-->
<!-- </m>-->
<!-- &lt;!&ndash;交通信号灯 objectTrfficLights&ndash;&gt;-->
<!-- <m v="object_trrfic">-->
<!-- <area fill="#8800cc00" stroke="#00cc00" stroke-width="0.2"></area>-->
<!-- </m>-->
<!-- &lt;!&ndash; 自定义渲染样式 &ndash;&gt;-->
<!-- <m k="navi_type" zoom-max="22" zoom-min="15">-->
<!-- &lt;!&ndash; 车道中心线 &ndash;&gt;-->
<!-- <m v="had_lane_link">-->
<!-- <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#ff0000"-->
<!-- width="0.3" />-->
<!-- </m>-->
<!-- &lt;!&ndash; 车道边线 &ndash;&gt;-->
<!-- <m v="had_lane_mark_link">-->
<!-- <line stipple-width="0.5" stroke="#0000ff" width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash;道路箭头 objectArrow&ndash;&gt;-->
<!-- <m v="object_arrow">-->
<!-- <area fade="5" fill="#88aaaa00" stroke="#ff0000" stroke-width="0.1"></area>-->
<!-- </m>-->
<!-- &lt;!&ndash;人行横道 objectcrosswalk&ndash;&gt;-->
<!-- <m v="object_crosswalk">-->
<!-- <area fill="#88800080" stroke="#ff0000" stroke-width="0.2"></area>-->
<!-- <caption style="bold" dy="12" fill="#4D2F08" k="name" size="14" stroke="#ffffff"-->
<!-- stroke-width="2.0" />-->
<!-- <caption style="bold" dy="-12" fill="#4D2F08" k="ele" size="12" stroke="#ffffff"-->
<!-- stroke-width="2.0" />-->
<!-- </m>-->
<!-- &lt;!&ndash;杆状物 objectpole&ndash;&gt;-->
<!-- <m v="object_pole">-->
<!-- <line stipple-width="0.5" stroke="#8800aaaa" width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash;对象标志 objectsymbol&ndash;&gt;-->
<!-- <m v="object_symbol">-->
<!-- <area fill="#880000cc" stroke="#0000cc" stroke-width="0.2"></area>-->
<!-- </m>-->
<!-- &lt;!&ndash;交通信号灯 objectTrfficLights&ndash;&gt;-->
<!-- <m v="object_trrfic">-->
<!-- <area fill="#8800cc00" stroke="#00cc00" stroke-width="0.2"></area>-->
<!-- </m>-->
<!-- <m zoom-max="19" zoom-min="15">-->
<!-- <text use="ferry" />-->
<!-- </m>-->
<!-- <m zoom-max="19" zoom-min="15">-->
<!-- <text use="ferry" />-->
<!-- </m>-->
<!-- &lt;!&ndash;道路方向&ndash;&gt;-->
<!-- <m v="symbol_object_arrow">-->
<!-- <symbol use="oneway"></symbol>-->
<!-- </m>-->
<!-- &lt;!&ndash;杆状物&ndash;&gt;-->
<!-- <m v="symbol_object_pole">-->
<!-- <symbol src="assets:symbols/gondola.svg" />-->
<!-- </m>-->
<!-- &lt;!&ndash;对象标志&ndash;&gt;-->
<!-- <m v="symbol_object_symbol">-->
<!-- <symbol src="assets:symbols/peak.svg" />-->
<!-- </m>-->
<!-- &lt;!&ndash;交通信号灯&ndash;&gt;-->
<!-- <m v="symbol_object_traffic">-->
<!-- <symbol src="assets:symbols/traffic_signal.svg" />-->
<!-- </m>-->
<!-- </m>-->
<!-- &lt;!&ndash;道路方向&ndash;&gt;-->
<!-- <m v="symbol_object_arrow">-->
<!-- <symbol use="oneway"></symbol>-->
<!-- </m>-->
<!-- &lt;!&ndash;杆状物&ndash;&gt;-->
<!-- <m v="symbol_object_pole">-->
<!-- <symbol src="assets:symbols/gondola.svg" />-->
<!-- </m>-->
<!-- &lt;!&ndash;对象标志&ndash;&gt;-->
<!-- <m v="symbol_object_symbol">-->
<!-- <symbol src="assets:symbols/peak.svg" />-->
<!-- </m>-->
<!-- &lt;!&ndash;交通信号灯&ndash;&gt;-->
<!-- <m v="symbol_object_traffic">-->
<!-- <symbol src="assets:symbols/traffic_signal.svg" />-->
<!-- </m>-->
<!-- </m>-->
<!-- <m k="nav_style">-->
<!-- <m v="symbol_object_line">-->
<!-- <m k="rule" zoom-max="22" zoom-min="15">-->
<!-- &lt;!&ndash; 蓝色黑色间隔线 &ndash;&gt;-->
<!-- <m v="blue_link">-->
<!-- <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#00000000"-->
<!-- width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash; 黄色线 &ndash;&gt;-->
<!-- <m v="yellow_link">-->
<!-- <line stipple-width="0.1" stroke="#f4ea2a" width="0.1" />-->
<!-- </m>-->
<!-- </m>-->
<!-- <line stipple-width="0.5" stroke="#33aaaa" width="0.3" />-->
<!-- </m>-->
<!-- <m v="symbol_track_point" zoom-max="25" zoom-min="10">-->
<!-- <symbol src="assets:symbols/dot_blue.svg" />-->
<!-- </m>-->
<!-- </m>-->
<!-- <m k="nav_style">-->
<!-- <m v="symbol_object_line">-->
<!-- <m k="rule" zoom-max="22" zoom-min="15">-->
<!-- &lt;!&ndash; 蓝色黑色间隔线 &ndash;&gt;-->
<!-- <m v="blue_link">-->
<!-- <line dasharray="20,20" fix="true" stipple-stroke="#00000000" stroke="#00000000"-->
<!-- width="0.1" />-->
<!-- </m>-->
<!-- &lt;!&ndash; 黄色线 &ndash;&gt;-->
<!-- <m v="yellow_link">-->
<!-- <line stipple-width="0.1" stroke="#f4ea2a" width="0.1" />-->
<!-- </m>-->
<!-- </m>-->
<!-- <line stipple-width="0.5" stroke="#33aaaa" width="0.3" />-->
<!-- </m>-->
<!-- <m v="symbol_track_point" zoom-max="25" zoom-min="10">-->
<!-- <symbol src="assets:symbols/dot_blue.svg" />-->
<!-- </m>-->
<!-- </m>-->
<m k="qi_table">
<!--车道数-->
@ -1805,21 +1805,21 @@
</m>
<!--电子眼-->
<m v="OMDB_ELECTRONICEYE">
<m k="angle">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:symbols/volcano.svg" symbol-height="69" symbol-width="69"></symbol>
</m>
<caption k="name" fill="#000000" priority="0" size="14" stroke="#ffffff" stroke-width="1.0" dy="-30"></caption>
<!-- <m k="angle">-->
<!-- <symbol repeat="false" repeat-start="0" rotate="false"-->
<!-- src="assets:symbols/volcano.svg" symbol-height="69" symbol-width="69"></symbol>-->
<!-- </m>-->
<caption dy="-30" fill="#000000" k="name" priority="0" size="14"
stroke="#ffffff" stroke-width="1.0"></caption>
<m k="type" v="angle">
<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>
src="assets:omdb/icon_4010.svg" symbol-height="36" symbol-width="28"></symbol>
</m>
<m k="type" v="s_2_e">
<line use="s2e" />
</m>
</m>
<!-- 路口 -->
</m>
<!-- 路口 -->
<m v="OMDB_INTERSECTION">
<m k="type" v="node">
<symbol src="assets:symbols/dot_blue_dark.svg"></symbol>

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="56" height="74.999" viewBox="0 0 56 74.999"><defs><style>.a{fill:#fff;opacity:0;}.b{fill:#fad950;}.c,.d{fill:#0b1923;}.c{stroke:#0b1923;stroke-width:0.5px;}.e,.f{stroke:none;}.f{fill:#0b1923;}</style></defs><g transform="translate(1401 -1261.001) rotate(90)"><rect class="a" width="56" height="56" transform="translate(1280 1345)"/><g transform="translate(0 -2)"><g class="b" transform="translate(1280 1349)"><path class="e" d="M 52.55363845825195 47.5 L 3.446360111236572 47.5 C 3.195830106735229 47.5 3.067879915237427 47.34397125244141 3.0139000415802 47.25096893310547 C 2.959929943084717 47.157958984375 2.887939929962158 46.96945190429688 3.012239933013916 46.75191879272461 L 27.56587028503418 3.783060550689697 C 27.69112968444824 3.563860416412354 27.89163017272949 3.53113055229187 28 3.53113055229187 C 28.10836029052734 3.53113055229187 28.30886077880859 3.563860416412354 28.43411064147949 3.783050537109375 L 52.98777008056641 46.75193023681641 C 53.112060546875 46.96945190429688 53.04006958007812 47.157958984375 52.98609924316406 47.25096893310547 C 52.93212127685547 47.34397125244141 52.80416870117188 47.5 52.55363845825195 47.5 Z"/><path class="f" d="M 27.99999618530273 6.046699523925781 L 5.169540405273438 46 L 50.83046340942383 46 L 27.99999618530273 6.046699523925781 M 27.99999809265137 2.0311279296875 C 28.67629432678223 2.0311279296875 29.35259056091309 2.367034912109375 29.73648071289062 3.038848876953125 L 54.29013061523438 46.00772094726562 C 55.05202102661133 47.34104156494141 54.08929061889648 49 52.55363845825195 49 L 3.446361541748047 49 C 1.910709381103516 49 0.9479789733886719 47.34104156494141 1.709869384765625 46.00772094726562 L 26.26350975036621 3.038848876953125 C 26.64740562438965 2.367034912109375 27.32370185852051 2.0311279296875 27.99999809265137 2.0311279296875 Z"/></g><path class="c" d="M44.849,49.162a.812.812,0,0,0,.794-.794V46.779H48.2a4.526,4.526,0,0,0,3.462-1.419,5.191,5.191,0,0,0,1.248-3.178,2.467,2.467,0,0,0,2.213-2.667c-.113-3.235-3.235-4.483-5.221-4.483H40.309a5.77,5.77,0,0,0-5.278,5.618v1.475a1.138,1.138,0,0,0,1.135,1.135h.34c.113,2.043,1.305,3.518,2.951,3.518h1.873v1.589a.812.812,0,0,0,.794.794h.908v.624a2.519,2.519,0,0,0,2.5,2.5h.738v1.362a1.5,1.5,0,0,0,1.475,1.475H50.41a1.5,1.5,0,0,0,1.475-1.475V50.127a1.5,1.5,0,0,0-1.475-1.475H47.743a1.5,1.5,0,0,0-1.475,1.475v1.362H45.53a1.707,1.707,0,0,1-1.7-1.7v-.624Zm2.213,4.483V52.283c1.873,0,1.873-.794,0-.794ZM37.3,43.2h6.242a2.894,2.894,0,0,0,1.759-.624,2.984,2.984,0,0,0,1.021,1.589,3.224,3.224,0,0,0,2.1.794h.4c1.532-.284,2.44-1.589,2.44-3.575a4,4,0,0,0-1.816-3.745,6.605,6.605,0,0,1,.851-.34.413.413,0,1,0-.227-.794,3.922,3.922,0,0,0-1.532.794l-.057.057a6.481,6.481,0,0,0-1.532,2.1c-.738,1.419-2.1,2.951-3.4,2.951H36.167a.366.366,0,0,1-.34-.34V40.593a4.919,4.919,0,0,1,4.483-4.824H49.9c1.135,0,4.313.681,4.426,3.689a1.7,1.7,0,0,1-1.419,1.873,6.868,6.868,0,0,0-.057-1.078.4.4,0,1,0-.794.113,5.661,5.661,0,0,1-1.021,4.426,3.6,3.6,0,0,1-2.894,1.192H39.458C38.266,45.984,37.415,44.849,37.3,43.2Zm4.824,3.575h2.667v1.589H42.125Z" transform="translate(1262.925 1337.469)"/></g><path class="d" d="M69.876,257.508H31.287a2.233,2.233,0,1,1,0-4.466H69.876a2.233,2.233,0,1,1,0,4.466Zm1.217-.951-9.7-8.471a2.2,2.2,0,0,1,0-3.157,2.328,2.328,0,0,1,3.234,0l9.705,8.471a2.2,2.2,0,0,1,0,3.157A2.325,2.325,0,0,1,71.093,256.557Zm-9.7,5.908,9.7-8.471a2.328,2.328,0,0,1,3.234,0,2.2,2.2,0,0,1,0,3.157l-9.7,8.471a2.328,2.328,0,0,1-3.234,0A2.2,2.2,0,0,1,61.392,262.465Z" transform="translate(1016.726 1425) rotate(-90)"/></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

2
vtm

@ -1 +1 @@
Subproject commit c6ba77aa0eb90a84fb19377706eb6792ec4a42b6
Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a