Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

This commit is contained in:
squallzhjch
2023-08-04 10:11:55 +08:00
39 changed files with 640 additions and 316 deletions

View File

@@ -5,42 +5,42 @@
"code": 1012,
"name": "检查点",
"zoomMin": 16,
"zoomMax": 19
"zoomMax": 22
},
"2001": {
"table": "OMDB_RD_LINK",
"code": 2001,
"name": "道路线",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
"code": 2002,
"name": "道路功能等级",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2008": {
"table": "OMDB_RD_LINK_KIND",
"code": 2008,
"name": "道路种别",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2010": {
"table": "OMDB_LINK_DIRECT",
"code": 2010,
"name": "道路方向",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2011": {
"table": "OMDB_LINK_NAME",
"code": 2011,
"name": "道路名",
"zoomMin": 16,
"zoomMax": 17,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -54,8 +54,8 @@
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013,
"name": "车道边界类型",
"zoomMin": 18,
"zoomMax": 21,
"zoomMin": 19,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -70,21 +70,21 @@
"code": 2019,
"name": "常规线限速",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2020": {
"table": "OMDB_LINK_SPEEDLIMIT_COND",
"code": 2020,
"name": "条件线限速",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2021": {
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
"code": 2021,
"name": "可变线限速",
"zoomMin": 16,
"zoomMax": 17
"zoomMax": 22
},
"2022": {
"table": "OMDB_CON_ACCESS",
@@ -110,8 +110,8 @@
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
"code": 2083,
"name": "道路边界类型",
"zoomMin": 18,
"zoomMax": 21
"zoomMin": 19,
"zoomMax": 22
},
"2201":{
"table": "OMDB_BRIDGE",
@@ -123,7 +123,7 @@
"code": 2202,
"name": "隧道",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -138,7 +138,7 @@
"code": 4001,
"name": "路口",
"zoomMin": 16,
"zoomMax": 17,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -153,7 +153,7 @@
"code": 4002,
"name": "常规点限速",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "maxSpeed",
@@ -174,7 +174,7 @@
"code": 4003,
"name": "条件点限速",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "maxSpeed",
@@ -189,7 +189,7 @@
"code": 4004,
"name": "可变点限速",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "location",
@@ -216,7 +216,7 @@
"code": 4006,
"name": "普通交限",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -255,7 +255,7 @@
"code": 4010,
"name": "电子眼",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -273,7 +273,7 @@
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine(direct=3)"
"vlib": "generateDirectReferenceLine()"
},
{
"k": "geometry",
@@ -288,7 +288,7 @@
"code": 4022,
"name": "交通灯",
"zoomMin": 16,
"zoomMax": 21,
"zoomMax": 22,
"transformer": [
]
},
@@ -297,7 +297,7 @@
"code": 4601,
"name": "车信",
"zoomMin": 16,
"zoomMax": 17,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -323,8 +323,8 @@
"table": "OMDB_LANE_LINK_LG",
"code": 5001,
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 21,
"zoomMin": 19,
"zoomMax": 22,
"transformer": [
{
"k": "geometry",
@@ -338,6 +338,37 @@
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
},
"3005":{
"table": "OMDB_TRAFFIC_SIGN",
"code": 3005,
"name": "交通标牌",
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationTrafficSignHeight()"
},{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine('', 0.2)"
}
]
},
"3006":{
"table": "OMDB_POLE",
"code": 3006,
"name": "杆状物",
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationPoleHeight()"
}
]
}
}
}

View File

@@ -67,7 +67,7 @@ class Constant {
/**
* 地图最多缩放级别23
*/
const val MAX_ZOOM = 23
const val MAX_ZOOM = 22
/**
* 是否自动定位

View File

@@ -1,5 +1,6 @@
package com.navinfo.omqs.bean
import com.google.gson.annotations.Expose
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.omqs.db.ImportPreProcess
import kotlin.reflect.KFunction
@@ -8,8 +9,11 @@ import kotlin.reflect.full.declaredMemberFunctions
class ImportConfig {
@Expose
var tableMap: MutableMap<String, TableInfo> = mutableMapOf()
@Expose
val tableGroupName: String = "OMDB数据"
@Expose
var checked : Boolean = true
val preProcess: ImportPreProcess = ImportPreProcess()

View File

@@ -150,11 +150,11 @@ class ImportOMDBHelper @AssistedInject constructor(
if (list != null) {
// 将list数据转换为map
for ((index, line) in list.withIndex()) {
Log.d("ImportOMDBHelper", "解析第:${index + 1}")
val map = gson.fromJson<Map<String, Any>>(
line,
object : TypeToken<Map<String, Any>>() {}.getType()
)
if (line == null || line.trim() == "") {
continue
}
Log.d("ImportOMDBHelper", "解析第:${index+1}")
val map = gson.fromJson<Map<String, Any>>(line, object:TypeToken<Map<String, Any>>(){}.getType())
.toMutableMap()
map["qi_table"] = currentConfig.table
map["qi_name"] = currentConfig.name

View File

@@ -10,7 +10,9 @@ import org.json.JSONObject
import org.locationtech.jts.algorithm.Angle
import org.locationtech.jts.geom.Coordinate
import org.locationtech.jts.geom.Geometry
import org.locationtech.jts.io.WKTWriter
import org.oscim.core.GeoPoint
import kotlin.math.min
class ImportPreProcess {
@@ -27,9 +29,9 @@ class ImportPreProcess {
Log.d("checkCircleRoad", "LinkInEntity: ${linkInId}- ${linkInEntity?.properties?.get("snodePid")}LinkOutEntity: ${linkOutId}- ${linkOutEntity?.properties?.get("enodePid")}")
// 查询linkIn的sNode和linkOut的eNode是否相同如果相同认为数据是环形路口返回false
if (linkInEntity!=null&&linkOutEntity!=null) {
if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"]
|| linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"]|| linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"])
return false
if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"]|| linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"]) {
return false
}
}
return true
}
@@ -105,9 +107,9 @@ class ImportPreProcess {
var point = Coordinate(geometry?.coordinate)
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
if (isReverse) {
angle += 180
}
// if (isReverse) {
// angle += 180
// }
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle=(450-angle)%360
radian = Math.toRadians(angle)
@@ -124,8 +126,8 @@ class ImportPreProcess {
}
// 计算偏移距离
val dx: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.sin(radian)
val dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
// 计算偏移后的点
val coord =
@@ -144,8 +146,14 @@ class ImportPreProcess {
val translateGeometry = renderEntity.wkt
val startGeometry = GeometryTools.createGeometry(renderEntity.properties["geometry"])
val pointEnd = translateGeometry!!.coordinates[translateGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
val pointStart = startGeometry!!.coordinates[startGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
var pointEnd = translateGeometry!!.coordinates[translateGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
var pointStart = startGeometry!!.coordinates[startGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
if (translateGeometry.geometryType == Geometry.TYPENAME_LINESTRING) { // 如果是线数据,则取倒数第二个点作为偏移的起止点
pointEnd = translateGeometry!!.coordinates[translateGeometry.numPoints-2] // 获取这个geometry对应的结束点坐标
}
if (startGeometry.geometryType == Geometry.TYPENAME_LINESTRING) { // 如果是线数据,则取倒数第二个点作为偏移的起止点
pointStart = startGeometry!!.coordinates[startGeometry.numPoints-2] // 获取这个geometry对应的结束点坐标
}
// 将这个起终点的线记录在数据中
val startEndReference = ReferenceEntity()
@@ -202,24 +210,22 @@ class ImportPreProcess {
/**
* 生成与对应方向相同的方向线,用以绘制方向箭头
* */
fun generateDirectReferenceLine(renderEntity: RenderEntity, direction: String = "") {
fun generateDirectReferenceLine(renderEntity: RenderEntity, direction: String = "", distance: String = "") {
// 根据数据或angle计算方向对应的角度和偏移量
val geometry = renderEntity.wkt
var isReverse = false // 是否为逆向
if (direction.isNotEmpty()) {
val paramDirections = direction.split("=")
if (paramDirections.size>=2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
isReverse = true;
isReverse = true
}
}
var radian = 0.0 // geometry的角度如果是点获取angle如果是线获取最后两个点的方向
var point = Coordinate(geometry?.coordinate)
var pointStartArray = mutableListOf<Coordinate>()
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
point = Coordinate(geometry?.coordinate)
val point = Coordinate(geometry?.coordinate)
pointStartArray.add(point)
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
if (isReverse) {
angle += 180
}
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle=(450-angle)%360
radian = Math.toRadians(angle)
@@ -232,27 +238,48 @@ class ImportPreProcess {
val p2: Coordinate = coordinates.get(coordinates.size - 1)
// 计算线段的方向
radian = Angle.angle(p1, p2)
point = p2
pointStartArray.add(p1)
} else if (Geometry.TYPENAME_POLYGON == geometry?.geometryType) {
// 记录下面数据的每一个点位
pointStartArray.addAll(geometry.coordinates)
// 获取当前的面数据对应的方向信息
var angle = if(renderEntity?.properties?.get("angle") == null) {
if (renderEntity?.properties?.get("heading") == null) {
0.0
} else {
renderEntity?.properties?.get("heading")?.toDouble()!!
}
} else renderEntity?.properties?.get("angle")?.toDouble()!!
angle=(450-angle)%360
radian = Math.toRadians(angle)
}
// 计算偏移距离
val dx: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.sin(radian)
var dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
var dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
if (distance.isNotEmpty()) {
dx = GeometryTools.convertDistanceToDegree(distance.toDouble(), geometry?.coordinate?.y!!) * Math.cos(radian)
dy = GeometryTools.convertDistanceToDegree(distance.toDouble(), geometry?.coordinate?.y!!) * Math.sin(radian)
}
val coorEnd = Coordinate(point.getX() + dx, point.getY() + dy)
for (pointStart in pointStartArray) {
val coorEnd = Coordinate(pointStart.getX() + dx, pointStart.getY() + dy, pointStart.z)
val angleReference = ReferenceEntity()
angleReference.renderEntityId = renderEntity.id
angleReference.name = "${renderEntity.name}参考方向"
angleReference.table = renderEntity.table
angleReference.zoomMin = renderEntity.zoomMin
angleReference.zoomMax = renderEntity.zoomMax
angleReference.taskId = renderEntity.taskId
// 与原有方向指向平行的线
angleReference.geometry = WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
angleReference.properties["qi_table"] = renderEntity.table
angleReference.properties["type"] = "angle"
Realm.getDefaultInstance().insert(angleReference)
}
val angleReference = ReferenceEntity()
angleReference.renderEntityId = renderEntity.id
angleReference.name = "${renderEntity.name}参考方向"
angleReference.table = renderEntity.table
angleReference.zoomMin = renderEntity.zoomMin
angleReference.zoomMax = renderEntity.zoomMax
angleReference.taskId = renderEntity.taskId
// 与原有方向指向平行的线
angleReference.geometry = GeometryTools.createLineString(arrayOf(point, coorEnd)).toString()
angleReference.properties["qi_table"] = renderEntity.table
angleReference.properties["type"] = "angle"
Realm.getDefaultInstance().insert(angleReference)
}
fun addAngleFromGeometry(renderEntity: RenderEntity): String {
@@ -322,10 +349,6 @@ class ImportPreProcess {
referenceEntity.renderEntityId = renderEntity.id
referenceEntity.name = "${renderEntity.name}参考方向"
referenceEntity.table = renderEntity.table
referenceEntity.zoomMin = renderEntity.zoomMin
referenceEntity.zoomMax = renderEntity.zoomMax
referenceEntity.taskId = renderEntity.taskId
// 与原数据使用相同的geometry
referenceEntity.geometry = renderEntity.geometry.toString()
referenceEntity.properties["qi_table"] = renderEntity.table
@@ -339,6 +362,7 @@ class ImportPreProcess {
}
}
/**
* 生成默认道路名数据
* */
@@ -425,4 +449,60 @@ class ImportPreProcess {
}
}
}
/**
* 处理杆状物的高程数据
* */
fun normalizationPoleHeight(renderEntity: RenderEntity) {
// 获取杆状物的高程数据
val geometry = renderEntity.wkt
if (geometry!=null) {
var minHeight=Double.MAX_VALUE
var maxHeight=Double.MIN_VALUE
for (coordinate in geometry.coordinates) {
if (coordinate.z<minHeight) {
minHeight = coordinate.z
}
if (coordinate.z>maxHeight) {
maxHeight = coordinate.z
}
}
for (coordinate in geometry.coordinates) {
if (coordinate.z == minHeight) {
coordinate.z = 0.0
}
if (coordinate.z == maxHeight) {
coordinate.z = 40.0
}
}
renderEntity.geometry = WKTWriter(3).write(GeometryTools.createLineString(geometry.coordinates))
}
}
/**
* 处理交通标牌的高程数据
* */
fun normalizationTrafficSignHeight(renderEntity: RenderEntity) {
// 获取交通标牌的高程数据
val geometry = renderEntity.wkt
if (geometry!=null) {
// 获取所有的高程信息,计算高程的中位数,方便对高程做定制化处理
var midHeight=0.0
var countHeight = 0.0
for (coordinate in geometry.coordinates) {
countHeight+=coordinate.z
}
midHeight = countHeight/geometry.coordinates.size
// 对高程数据做特殊处理
for (coordinate in geometry.coordinates) {
if (coordinate.z>=midHeight) {
coordinate.z = 40.0
} else {
coordinate.z = 30.0
}
}
renderEntity.geometry = WKTWriter(3).write(GeometryTools.getPolygonGeometry(geometry.coordinates))
}
}
}

View File

@@ -164,7 +164,7 @@ class TaskUploadScope(
val objects = realm.where(QsRecordBean::class.java)
.equalTo("linkId", /*"84207223282277331"*/hadLinkDvoBean.linkPid).and()
.equalTo("taskId", hadLinkDvoBean.taskId).findAll()
.equalTo("taskId", taskBean.id).findAll()
if (objects != null && objects.size > 0) {
val copyList = realm.copyFromRealm(objects)
@@ -241,7 +241,7 @@ class TaskUploadScope(
change(FileUploadStatus.ERROR)
}
} else {
change(FileUploadStatus.NONE)
change(FileUploadStatus.NONE,"无可上传数据")
}
} catch (e: Throwable) {
change(FileUploadStatus.ERROR)

View File

@@ -465,7 +465,7 @@ class MainActivity : BaseActivity() {
if (leftFragment != null) {
supportFragmentManager.beginTransaction().remove(leftFragment!!).commit()
leftFragment = null
binding.mainActivityBottomSheetGroup.visibility = View.GONE
hideMainActivityBottomSheetGroup()
binding.mainActivityLeftFragment.visibility = View.GONE
}
// binding.mainActivityDrawer.open()
@@ -767,19 +767,10 @@ class MainActivity : BaseActivity() {
binding.mainActivityLeftFragment.visibility = View.GONE
}
binding.mainActivityBottomSheetGroup.visibility = View.GONE
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5)
hideMainActivityBottomSheetGroup()
} else {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65)
showMainActivityBottomSheetGroup()
}
mapController.mMapView.vtmMap.animator().animateTo(
GeoPoint(
mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,
mapController.mMapView.vtmMap.mapPosition.geoPoint.longitude
)
)
}
private fun voiceOnTouchStart() {
@@ -800,7 +791,7 @@ class MainActivity : BaseActivity() {
fun onClickTaskFragment() {
if (leftFragment !is TaskManagerFragment) {
if (leftFragment == null) {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
showMainActivityBottomSheetGroup()
binding.mainActivityLeftFragment.visibility = View.VISIBLE
}
leftFragment = TaskManagerFragment {
@@ -820,7 +811,7 @@ class MainActivity : BaseActivity() {
fun onClickResFragment() {
if (leftFragment !is QsRecordListFragment) {
if (leftFragment == null) {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
showMainActivityBottomSheetGroup()
binding.mainActivityLeftFragment.visibility = View.VISIBLE
}
leftFragment = QsRecordListFragment {
@@ -834,6 +825,28 @@ class MainActivity : BaseActivity() {
}
}
private fun showMainActivityBottomSheetGroup(){
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65)
mapController.mMapView.vtmMap.animator().animateTo(
GeoPoint(
mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,
mapController.mMapView.vtmMap.mapPosition.geoPoint.longitude
)
)
}
private fun hideMainActivityBottomSheetGroup(){
binding.mainActivityBottomSheetGroup.visibility = View.GONE
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5)
mapController.mMapView.vtmMap.animator().animateTo(
GeoPoint(
mapController.mMapView.vtmMap.mapPosition.geoPoint.latitude,
mapController.mMapView.vtmMap.mapPosition.geoPoint.longitude
)
)
}
/**
* 显示轨迹回放布局
*/
@@ -868,7 +881,7 @@ class MainActivity : BaseActivity() {
fun onClickOfflineMapFragment() {
if (leftFragment !is OfflineMapFragment) {
if (leftFragment == null) {
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
showMainActivityBottomSheetGroup()
binding.mainActivityLeftFragment.visibility = View.VISIBLE
}
leftFragment = OfflineMapFragment {

View File

@@ -126,7 +126,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
//116.25017070328308 40.061730653134696
// 定位到指定位置
niMapController.mMapView.vtmMap.animator()
.animateTo(GeoPoint( 40.061730653134696, 116.25017070328308))
.animateTo(GeoPoint( 40.055878135289966, 116.3011588289057 ))
}
// R.id.personal_center_menu_task_list -> {
// findNavController().navigate(R.id.TaskManagerFragment)

View File

@@ -1,5 +1,6 @@
package com.navinfo.omqs.ui.fragment.tasklist
import android.util.Log
import android.view.LayoutInflater
import android.view.ViewGroup
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
@@ -37,6 +38,11 @@ class TaskAdapter(
val binding: AdapterTaskBinding =
holder.viewBinding as AdapterTaskBinding
val bean = data[position]
if(bean.linkStatus==1){
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head)
}else{
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
}
binding.taskLinkPid.text = "PID:${bean.linkPid}"
binding.taskMesh.text = "mesh:${bean.mesh}"
binding.root.isSelected = selectPosition == position

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/baseline_add_24_press" android:state_selected="true" />
<item android:drawable="@drawable/baseline_add_24" android:state_selected="false" />
<item android:drawable="@drawable/icon_add_road_p" android:state_selected="true" />
<item android:drawable="@drawable/icon_add_road_n" android:state_selected="false" />
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_add_task_p" android:state_selected="true"></item>
<item android:drawable="@drawable/icon_add_task_n" />
</selector>

View File

@@ -154,7 +154,7 @@
android:id="@+id/main_activity_task_line"
style="@style/top_right_drawer_btns_style"
android:onClick="@{()->mainActivity.onClickTaskLink()}"
android:src="@drawable/icon_calc_disance" />
android:src="@drawable/icon_add_road" />
<ImageButton
android:id="@+id/main_activity_menu"

View File

@@ -58,6 +58,7 @@
android:layout_height="0dp"
android:layout_marginTop="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/task_search" />
app:layout_constraintTop_toBottomOf="@id/task_search"
tools:ignore="MissingClass" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -17,7 +17,7 @@
<item
android:id="@+id/personal_center_menu_import_data"
android:icon="@drawable/ic_baseline_import_export_24"
android:visible="false"
android:visible="true"
android:title="导入数据" />
<item
android:id="@+id/personal_center_menu_import_yuan_data"
@@ -38,7 +38,7 @@
<item
android:id="@+id/personal_center_menu_version"
android:icon="@drawable/ic_baseline_layers_24"
android:title="版本ONE_QE_V1.4.0_20230721_A" />
android:title="版本ONE_QE_V1.5.0_20230728_A" />
</group>
<group android:checkableBehavior="single">
<item android:title="小标题">