Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
@@ -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()"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,7 +67,7 @@ class Constant {
|
||||
/**
|
||||
* 地图最多缩放级别23
|
||||
*/
|
||||
const val MAX_ZOOM = 23
|
||||
const val MAX_ZOOM = 22
|
||||
|
||||
/**
|
||||
* 是否自动定位
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
BIN
app/src/main/res/drawable-xhdpi/icon_add_road_n.png
Normal file
|
After Width: | Height: | Size: 539 B |
BIN
app/src/main/res/drawable-xhdpi/icon_add_road_p.png
Normal file
|
After Width: | Height: | Size: 544 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_add_road.png
Normal file
|
After Width: | Height: | Size: 950 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_add_road_n.png
Normal file
|
After Width: | Height: | Size: 763 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_add_road_p.png
Normal file
|
After Width: | Height: | Size: 798 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_add_task_n.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
app/src/main/res/drawable-xxhdpi/icon_add_task_p.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
@@ -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="小标题">
|
||||
|
||||