Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
Conflicts: app/src/main/assets/omdb_config.json app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt vtm
This commit is contained in:
commit
15bfad1357
File diff suppressed because it is too large
Load Diff
@ -458,10 +458,10 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
} else if (renderEntity.code.toInt() == DataCodeEnum.OMDB_INTERSECTION.code.toInt() && renderEntity.properties.containsKey(
|
||||
"linkList"
|
||||
)
|
||||
) {
|
||||
} else if (renderEntity.code.toInt() == DataCodeEnum.OMDB_INTERSECTION.code.toInt()||renderEntity.code.toInt() == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code.toInt() && renderEntity.properties.containsKey(
|
||||
"linkList"
|
||||
)
|
||||
) {
|
||||
|
||||
if (renderEntity.properties["linkList"] != null) {
|
||||
|
||||
@ -805,26 +805,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
}
|
||||
bufferedReader.close()
|
||||
}
|
||||
|
||||
|
||||
// // 将listResult数据插入到Realm数据库中
|
||||
// currentConfig.let {
|
||||
// val list = FileIOUtils.readFile2List(txtFile, "UTF-8")
|
||||
//// Log.d("ImportOMDBHelper", "开始解析:${txtFile?.name}")
|
||||
// if (list != null) {
|
||||
// // 将list数据转换为map
|
||||
// for ((index, line) in list.withIndex()) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// // 如果当前解析的是OMDB_RD_LINK数据,将其缓存在预处理类中,以便后续处理其他要素时使用
|
||||
// if (currentConfig.code == DataCodeEnum.OMDB_RD_LINK.code.toInt()) {
|
||||
//// importConfig.preProcess.cacheRdLink =
|
||||
//// listResult.associateBy { it.properties["linkPid"] }
|
||||
// // 将sNodeId和eNodeId放在外层关联对象中,优化查询效率
|
||||
// }
|
||||
// 1个文件发送一次flow流
|
||||
emit("${processIndex}/${tableNum}")
|
||||
// Log.d("ImportOMDBHelper", "表解析===2${currentConfig.table}")
|
||||
|
@ -10,6 +10,7 @@ import com.navinfo.collect.library.utils.GeometryTools
|
||||
import com.navinfo.collect.library.utils.StrZipUtil
|
||||
import com.navinfo.omqs.Constant
|
||||
import io.realm.Realm
|
||||
import io.realm.RealmModel
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
import org.locationtech.jts.algorithm.Angle
|
||||
@ -57,9 +58,6 @@ class ImportPreProcess {
|
||||
}
|
||||
}
|
||||
}
|
||||
// // 根据linkIn和linkOut从数据库获取对应的link数据
|
||||
// Realm.getInstance(Constant.currentInstallTaskConfig)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
@ -248,6 +246,59 @@ class ImportPreProcess {
|
||||
insertData(listResult)
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成车道类型起终点参考数据
|
||||
* */
|
||||
fun generateLaneTypeAccessS2ERefPoint(renderEntity: RenderEntity) {
|
||||
// 如果车道类型非常规车道(第0bit的数据),则需要生成辅助数据
|
||||
if (renderEntity.properties["laneType"]!!.toInt()>0) {
|
||||
val geometry = GeometryTools.createGeometry(renderEntity.properties["geometry"])
|
||||
|
||||
val pointEnd = geometry!!.coordinates[geometry.numPoints - 1] // 获取这个geometry对应的结束点坐标
|
||||
val pointStart = geometry!!.coordinates[0] // 获取这个geometry对应的起点
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
|
||||
// 将这个起终点的线记录在数据中
|
||||
val startReference = ReferenceEntity()
|
||||
startReference.renderEntityId = renderEntity.id
|
||||
startReference.name = "${renderEntity.name}参考点"
|
||||
startReference.code = renderEntity.code
|
||||
startReference.table = renderEntity.table
|
||||
startReference.zoomMin = renderEntity.zoomMin
|
||||
startReference.zoomMax = renderEntity.zoomMax
|
||||
startReference.taskId = renderEntity.taskId
|
||||
startReference.enable = renderEntity.enable
|
||||
|
||||
// 起点坐标
|
||||
startReference.geometry =
|
||||
GeometryTools.createGeometry(GeoPoint(pointStart.y, pointStart.x)).toString()
|
||||
startReference.properties["qi_table"] = renderEntity.table
|
||||
startReference.properties["type"] = "s_2_p"
|
||||
startReference.properties["geometry"] = startReference.geometry
|
||||
listResult.add(startReference)
|
||||
|
||||
val endReference = ReferenceEntity()
|
||||
endReference.renderEntityId = renderEntity.id
|
||||
endReference.name = "${renderEntity.name}参考点"
|
||||
endReference.code = renderEntity.code
|
||||
endReference.table = renderEntity.table
|
||||
endReference.zoomMin = renderEntity.zoomMin
|
||||
endReference.zoomMax = renderEntity.zoomMax
|
||||
endReference.taskId = renderEntity.taskId
|
||||
endReference.enable = renderEntity.enable
|
||||
|
||||
// 终点坐标
|
||||
endReference.geometry =
|
||||
GeometryTools.createGeometry(GeoPoint(pointEnd.y, pointEnd.x)).toString()
|
||||
endReference.properties["qi_table"] = renderEntity.table
|
||||
endReference.properties["type"] = "e_2_p"
|
||||
endReference.properties["geometry"] = endReference.geometry
|
||||
|
||||
listResult.add(endReference)
|
||||
insertData(listResult)
|
||||
}
|
||||
}
|
||||
|
||||
fun generateS2EReferencePoint(
|
||||
renderEntity: RenderEntity,
|
||||
proKey: String = "",
|
||||
@ -463,30 +514,90 @@ 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") {
|
||||
|
||||
if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
|
||||
// 解析shapeList,将数组中的属性放会properties
|
||||
val shapeList = JSONArray(renderEntity.properties["shapeList"])
|
||||
for (i in 0 until shapeList.length()) {
|
||||
shape = shapeList.getJSONObject(i)
|
||||
if (shape.optInt("lateralOffset", 0) == 0) {
|
||||
break
|
||||
val boundaryType = renderEntity.properties["boundaryType"]
|
||||
val listResult = mutableListOf<RenderEntity>()
|
||||
if (boundaryType != null) {
|
||||
var isExistOffSet0 = false
|
||||
//只处理标线类型,App要求值渲染1、2、6、8
|
||||
if (boundaryType.toInt() == 2) {
|
||||
for (i in 0 until shapeList.length()) {
|
||||
var shape = shapeList.getJSONObject(i)
|
||||
val lateralOffset = shape.optInt("lateralOffset", 0)
|
||||
//999999时不应用也不渲染
|
||||
if (lateralOffset != 999999) {
|
||||
//需要做偏移处理
|
||||
if (lateralOffset != 0) {
|
||||
|
||||
when (shape.optInt("markType", 0)) {
|
||||
1, 2, 6, 8 -> {
|
||||
val renderEntityTemp = RenderEntity()
|
||||
for (key in shape.keys()) {
|
||||
renderEntityTemp.properties[key] = shape[key].toString()
|
||||
}
|
||||
renderEntityTemp.properties["qi_table"] =
|
||||
renderEntity.properties["qi_table"]
|
||||
renderEntityTemp.properties["qi_code"] =
|
||||
renderEntity.properties["qi_code"]
|
||||
renderEntityTemp.properties["qi_zoomMin"] =
|
||||
renderEntity.properties["qi_zoomMin"]
|
||||
renderEntityTemp.properties["qi_zoomMax"] =
|
||||
renderEntity.properties["qi_zoomMax"]
|
||||
renderEntityTemp.properties["name"] =
|
||||
renderEntity.properties["name"]
|
||||
renderEntityTemp.properties["qi_name"] =
|
||||
renderEntity.properties["qi_name"]
|
||||
renderEntityTemp.properties["boundaryType"] =
|
||||
renderEntity.properties["boundaryType"]
|
||||
renderEntityTemp.properties["featureClass"] =
|
||||
renderEntity.properties["featureClass"]
|
||||
renderEntityTemp.properties["featurePid"] =
|
||||
renderEntity.properties["featurePid"]
|
||||
|
||||
renderEntityTemp.code = renderEntity.code
|
||||
renderEntityTemp.table = renderEntity.table
|
||||
renderEntityTemp.name = renderEntity.name
|
||||
renderEntityTemp.zoomMin = renderEntity.zoomMin
|
||||
renderEntityTemp.zoomMax = renderEntity.zoomMax
|
||||
renderEntityTemp.enable = renderEntity.enable
|
||||
renderEntityTemp.taskId = renderEntity.taskId
|
||||
renderEntityTemp.catchEnable = renderEntity.catchEnable
|
||||
var dis = -lateralOffset.toDouble() / 100000000
|
||||
//最小值取10厘米,否正渲染太近无法显示
|
||||
if (dis > 0 && dis < 0.0000028) {
|
||||
dis = 0.0000028
|
||||
} else if (dis > -0.0000028 && dis < 0) {
|
||||
dis = -0.0000028
|
||||
}
|
||||
renderEntityTemp.geometry = GeometryTools.computeLine(
|
||||
dis,
|
||||
renderEntity.geometry
|
||||
)
|
||||
listResult.add(renderEntityTemp)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isExistOffSet0 = true
|
||||
//遍历赋值
|
||||
for (key in shape.keys()) {
|
||||
renderEntity.properties[key] = shape[key].toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//如果不存在偏移的数据时,数据本身不渲染同时也不进行捕捉
|
||||
if (!isExistOffSet0) {
|
||||
renderEntity.catchEnable = 0
|
||||
}
|
||||
if (listResult.size > 0) {
|
||||
insertData(listResult)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (key in shape.keys()) {
|
||||
renderEntity.properties[key] = shape[key].toString()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -604,29 +715,6 @@ class ImportPreProcess {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过rdDirect对象向rdLink的relation字段
|
||||
* */
|
||||
// fun addRdLinkDirect(renderEntity: RenderEntity) {
|
||||
// // 尝试更新RD_link的relation记录中的方向字段
|
||||
// val rdLinkEntity = queryRdLink(renderEntity.properties["linkPid"]!!)
|
||||
// if (rdLinkEntity?.linkRelation == null) {
|
||||
// rdLinkEntity?.linkRelation = LinkRelation()
|
||||
// }
|
||||
// rdLinkEntity?.linkRelation?.direct = renderEntity.properties["direct"]!!.toInt()
|
||||
// Realm.getInstance(Constant.currentInstallTaskConfig).insertOrUpdate(rdLinkEntity)
|
||||
// }
|
||||
|
||||
/**
|
||||
* 查询指定的Rdlink数据
|
||||
* */
|
||||
// fun queryRdLink(rdLinkId: String): RenderEntity? {
|
||||
// //////// return Realm.getInstance(Constant.currentInstallTaskConfig).where(RenderEntity::class.java)
|
||||
// .equalTo("code", DataCodeEnum.OMDB_RD_LINK.code)
|
||||
// .and().equalTo("linkPid", rdLinkId)
|
||||
// .findFirst()
|
||||
// }
|
||||
|
||||
/**
|
||||
* 生成电子眼对应的渲染名称
|
||||
* */
|
||||
@ -645,31 +733,26 @@ class ImportPreProcess {
|
||||
* 生成车道中心线面宽度
|
||||
* */
|
||||
fun generateAddWidthLine(renderEntity: RenderEntity) {
|
||||
try {
|
||||
// 添加车道中心面渲染原则,根据车道宽度进行渲染
|
||||
val angleReference = ReferenceEntity()
|
||||
// angleReference.renderEntityId = renderEntity.id
|
||||
angleReference.name = "${renderEntity.name}车道中线面"
|
||||
angleReference.table = renderEntity.table
|
||||
angleReference.geometry =
|
||||
GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000035)
|
||||
.toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
||||
angleReference.properties["qi_table"] = renderEntity.table
|
||||
angleReference.properties["widthProperties"] = "3"
|
||||
angleReference.zoomMin = renderEntity.zoomMin
|
||||
angleReference.zoomMax = renderEntity.zoomMax
|
||||
angleReference.taskId = renderEntity.taskId
|
||||
angleReference.enable = renderEntity.enable
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
angleReference.propertiesDb = StrZipUtil.compress(
|
||||
gson.toJson(angleReference.properties).toString()
|
||||
)
|
||||
listResult.add(angleReference)
|
||||
insertData(listResult)
|
||||
} catch (e: Exception) {
|
||||
Log.e("jingo", "车道中心线 generateAddWidthLine ${e.message}")
|
||||
}
|
||||
|
||||
// 添加车道中心面渲染原则,根据车道宽度进行渲染
|
||||
val angleReference = ReferenceEntity()
|
||||
// angleReference.renderEntityId = renderEntity.id
|
||||
angleReference.name = "${renderEntity.name}车道中线面"
|
||||
angleReference.table = renderEntity.table
|
||||
angleReference.geometry =
|
||||
GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000035)
|
||||
.toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
||||
angleReference.properties["qi_table"] = renderEntity.table
|
||||
angleReference.properties["widthProperties"] = "3"
|
||||
angleReference.zoomMin = renderEntity.zoomMin
|
||||
angleReference.zoomMax = renderEntity.zoomMax
|
||||
angleReference.taskId = renderEntity.taskId
|
||||
angleReference.enable = renderEntity.enable
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
angleReference.propertiesDb = StrZipUtil.compress(
|
||||
gson.toJson(angleReference.properties).toString()
|
||||
)
|
||||
listResult.add(angleReference)
|
||||
insertData(listResult)
|
||||
}
|
||||
|
||||
|
||||
@ -976,4 +1059,50 @@ class ImportPreProcess {
|
||||
GeometryTools.createGeometry(GeoPoint(centerPoint!!.y, centerPoint.x)).toString()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成通行车辆类型Lane的渲染名称字段
|
||||
* */
|
||||
fun generateLaneAccessType(renderEntity: RenderEntity): Boolean {
|
||||
if (renderEntity.properties.containsKey("accessCharacteristic")) {
|
||||
// 解析accessCharacteristic,判断是否存在指定属性
|
||||
val accessCharacteristic = renderEntity.properties["accessCharacteristic"].toString().toInt()
|
||||
var str = ""
|
||||
if (accessCharacteristic.and(4)>0) {
|
||||
str += "公"
|
||||
}
|
||||
if (accessCharacteristic.and(8)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
str += "多"
|
||||
}
|
||||
if (accessCharacteristic.and(64)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
str += "行"
|
||||
}
|
||||
if (accessCharacteristic.and(128)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
str += "自"
|
||||
}
|
||||
if (str.isNotEmpty()) {
|
||||
renderEntity.properties["name"] = str
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成车道点限速的名称
|
||||
* */
|
||||
fun obtainLaneSpeedLimitName(renderEntity: RenderEntity) {
|
||||
if (renderEntity.properties.containsKey("maxSpeed")&&renderEntity.properties.containsKey("minSpeed")) {
|
||||
renderEntity.properties["ref"] = "${renderEntity.properties["maxSpeed"]}|${renderEntity.properties["minSpeed"]}"
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -672,7 +672,7 @@ class MainViewModel @Inject constructor(
|
||||
*/
|
||||
private suspend fun captureItem(point: GeoPoint) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
var buffer = 3.2
|
||||
var buffer = 8.0
|
||||
if (mapController.mMapView.mapLevel >= 18) {
|
||||
buffer = 2.0
|
||||
}
|
||||
@ -733,7 +733,7 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
||||
@ -889,7 +889,7 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
|
||||
|
@ -710,10 +710,10 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
||||
* 更新相机状态资源
|
||||
*/
|
||||
public void updateCameraResources(int statusType, int indexClentCamera) {
|
||||
int resId = R.id.main_activity_camera;
|
||||
int resId = R.id.main_activity_status_camera;
|
||||
|
||||
if (indexClentCamera == 2)
|
||||
resId = R.id.main_activity_camera2;
|
||||
resId = R.id.main_activity_status_camera;
|
||||
|
||||
Drawable drawable = context.getResources().getDrawable(R.drawable.icon_page_video_a0);
|
||||
|
||||
@ -770,10 +770,10 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
||||
}
|
||||
|
||||
public void updateCameraBackgroundResources(int drawable, int indexClentCamera) {
|
||||
int resId = R.id.main_activity_camera;
|
||||
int resId = R.id.main_activity_status_camera;
|
||||
|
||||
if (indexClentCamera == 2)
|
||||
resId = R.id.main_activity_camera2;
|
||||
resId = R.id.main_activity_status_camera;
|
||||
|
||||
ImageView ivStatus = (ImageView) findViewById(resId);
|
||||
|
||||
@ -1547,9 +1547,9 @@ public class CommonDialog extends Dialog implements SurfaceHolder.Callback, IVid
|
||||
private int getResId() {
|
||||
|
||||
if (getmDeviceNum() == 2)
|
||||
return R.id.main_activity_camera2;
|
||||
return R.id.main_activity_status_camera;
|
||||
|
||||
return R.id.main_activity_camera;
|
||||
return R.id.main_activity_status_camera;
|
||||
}
|
||||
|
||||
public ShareUtil getmShareUtil() {
|
||||
|
@ -182,7 +182,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
|
||||
// 定位到指定位置
|
||||
niMapController.mMapView.vtmMap.animator()
|
||||
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
|
||||
.animateTo(GeoPoint(40.0882756, 116.3033581))
|
||||
.animateTo(GeoPoint(31.205913609396507, 121.56955739056055 ))
|
||||
}
|
||||
|
||||
R.id.personal_center_menu_open_all_layer -> {
|
||||
|
@ -104,14 +104,15 @@ class SignUtil {
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
//车道数
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
||||
//物理车道数OMDB_PHY_LANENUM
|
||||
DataCodeEnum.OMDB_LANE_NUM.code,
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code -> {
|
||||
"${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
||||
}
|
||||
|
||||
//常规点限速,条件点限速
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
|
||||
data
|
||||
)
|
||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(data)
|
||||
|
||||
//上下线分离
|
||||
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> {
|
||||
if (data.properties["multiDigitized"] == "1") "上下线" else " "
|
||||
@ -282,7 +283,8 @@ class SignUtil {
|
||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
||||
list.addAll(getLinkSpeedLimitMoreInfo(data))
|
||||
}
|
||||
//车道数
|
||||
//车道数//增加物理车道数DataCodeEnum.OMDB_PHY_LANENUM.code
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code,
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
||||
list.add(
|
||||
TwoItemAdapterItem(
|
||||
@ -1424,6 +1426,7 @@ class SignUtil {
|
||||
)
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
|
||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append(
|
||||
"${
|
||||
item.iconText.substringBefore(
|
||||
@ -1751,6 +1754,7 @@ class SignUtil {
|
||||
*/
|
||||
fun getRoadInfoIndex(element: RenderEntity): Int {
|
||||
return when (element.code) {
|
||||
DataCodeEnum.OMDB_PHY_LANENUM.code,//物理车道数
|
||||
DataCodeEnum.OMDB_LANE_NUM.code -> 0
|
||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1
|
||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="true" android:drawable="@drawable/icon_page_take_photo_a2">
|
||||
</item>
|
||||
<item android:state_selected="true" android:drawable="@drawable/icon_page_take_photo_a2">
|
||||
</item>
|
||||
<item android:drawable="@drawable/icon_page_take_photo_a3">
|
||||
</item>
|
||||
</selector>
|
@ -102,7 +102,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/top_right_drawer_btns_mr"
|
||||
app:constraint_referenced_ids="main_activity_add_new,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_distance,main_activity_menu"
|
||||
app:constraint_referenced_ids="main_activity_add_new,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_distance,main_activity_menu_layout"
|
||||
app:flow_horizontalGap="6dp"
|
||||
app:flow_wrapMode="aligned"
|
||||
app:layout_constraintRight_toLeftOf="@id/main_activity_right_fragment"
|
||||
@ -157,13 +157,29 @@
|
||||
android:onClick="@{()->mainActivity.onClickTaskLink()}"
|
||||
android:src="@drawable/icon_add_road" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_menu"
|
||||
android:layout_width="@dimen/top_right_drawer_wh"
|
||||
android:layout_height="@dimen/top_right_drawer_wh"
|
||||
android:background="@drawable/chk_icon_menu_open_close_xml"
|
||||
android:elevation="2dp"
|
||||
android:onClick="@{()->mainActivity.onClickMenu()}" />
|
||||
<FrameLayout
|
||||
android:id="@+id/main_activity_menu_layout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_menu"
|
||||
android:layout_width="@dimen/top_right_drawer_wh"
|
||||
android:layout_height="@dimen/top_right_drawer_wh"
|
||||
android:background="@drawable/chk_icon_menu_open_close_xml"
|
||||
android:elevation="2dp"
|
||||
android:onClick="@{()->mainActivity.onClickMenu()}" />
|
||||
|
||||
<ImageView
|
||||
android:layout_marginLeft="16dp"
|
||||
android:id="@+id/main_activity_status_camera"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/chk_icon_camera_contect_discontect_xml"
|
||||
android:elevation="2dp"
|
||||
tools:ignore="DuplicateIds,MissingConstraints" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<include
|
||||
android:id="@+id/main_activity_measuring_tool"
|
||||
|
@ -110,6 +110,7 @@
|
||||
android:src="@drawable/icon_camera_img" />
|
||||
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -59,7 +59,7 @@
|
||||
<item
|
||||
android:id="@+id/personal_center_menu_version"
|
||||
android:icon="@drawable/ic_baseline_layers_24"
|
||||
android:title="版本:23QE4_V1.5.6_20230928_A" />
|
||||
android:title="版本:23QE4_V1.5.7_20231011_A" />
|
||||
</group>
|
||||
<group android:checkableBehavior="single">
|
||||
<item android:title="小标题">
|
||||
|
@ -1561,7 +1561,6 @@
|
||||
|
||||
<!-- 杆状物 -->
|
||||
<m v="OMDB_POLE">
|
||||
<!-- <line stroke="#000000" width="2" cap="butt"></line>-->
|
||||
<symbol src="assets:omdb/icon_pole_3006.svg" symbol-height="56" symbol-width="56"></symbol>
|
||||
</m>
|
||||
|
||||
@ -1653,6 +1652,10 @@
|
||||
</m>
|
||||
|
||||
<m k="boundaryType" v="2">
|
||||
<!--标线-->
|
||||
<m k="markType" v="0">
|
||||
<line stroke="#eccc68" use="boundaryType" />
|
||||
</m>
|
||||
<!--标线-->
|
||||
<m k="markType" v="1">
|
||||
<m k="markColor" v="1">
|
||||
@ -2029,6 +2032,11 @@
|
||||
<symbol repeat="true" repeat-start="0" src="assets:omdb/icon_2017_1.svg"></symbol>
|
||||
</m>
|
||||
|
||||
<!-- 通行车辆类型Lane -->
|
||||
<m v="OMDB_LANE_ACCESS">
|
||||
<text use="road" size="14" stroke="#ffffff" fill="#e7a32d"></text>
|
||||
</m>
|
||||
|
||||
<!-- 车道施工 -->
|
||||
<m v="OMDB_LANE_CONSTRUCTION">
|
||||
<line stroke="#eccc68" width="0.1" />
|
||||
@ -2051,5 +2059,27 @@
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<!-- 车道类型 -->
|
||||
<m v="OMDB_LANE_TYPE_ACCESS">
|
||||
<m k="laneLinkPid">
|
||||
<line width="0.1" stroke="#cccccc" stipple-width="0.1" stipple-stroke="#cccccc"></line>
|
||||
</m>
|
||||
<m k="type" v="s_2_p">
|
||||
<symbol src="assets:omdb/icon_2092_s.svg" symbol-height="32"
|
||||
symbol-width="32" gland="true"></symbol>
|
||||
</m>
|
||||
<m k="type" v="e_2_p">
|
||||
<symbol src="assets:omdb/icon_2092_e.svg" symbol-height="32"
|
||||
symbol-width="32" gland="true"></symbol>
|
||||
</m>
|
||||
</m>
|
||||
|
||||
<!-- 车道点限速 -->
|
||||
<m v="OMDB_LANE_SPEEDLIMIT">
|
||||
<symbol repeat="false" repeat-gap="2000" repeat-start="0" rotate="true"
|
||||
src="assets:omdb/icon_4005.svg" symbol-height="24" symbol-width="24"></symbol>
|
||||
<caption k="ref" priority="0" size="12" fill="#ff0000" stroke="#ffffff" stroke-width="1" dy="-13"></caption>
|
||||
</m>
|
||||
|
||||
</m>
|
||||
</rendertheme>
|
1
collect-library/src/main/assets/omdb/icon_2092_e.svg
Normal file
1
collect-library/src/main/assets/omdb/icon_2092_e.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="131.3" height="131.3" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 131.3 131.3"><defs><linearGradient id="f" x1="63.4" y1="54.8" x2="68.2" y2="54.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#989898"/><stop offset="0" stop-color="#a3a3a3"/><stop offset=".1" stop-color="#c4c5c5"/><stop offset=".2" stop-color="#d8d9d9"/><stop offset=".3" stop-color="#e0e1e1"/><stop offset=".4" stop-color="#dbdcdc"/><stop offset=".5" stop-color="#cccece"/><stop offset=".6" stop-color="#b5b6b7"/><stop offset=".7" stop-color="#949697"/><stop offset=".8" stop-color="#6a6c6f"/><stop offset=".8" stop-color="#3f4246"/><stop offset="1" stop-color="#404247"/><stop offset="1" stop-color="#43434a"/></linearGradient><linearGradient id="g" x1="41.1" y1="26.7" x2="90.2" y2="26.7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><rect width="131.3" height="131.3" style="fill:none;"/><g><ellipse id="d" cx="65.7" cy="66.2" rx="14.4" ry="3.7" style="fill:#262d34; isolation:isolate; opacity:.2;"/><ellipse id="e" cx="65.7" cy="66.2" rx="7.5" ry="3" style="fill:#535a60;"/><path d="M65.7,42.6h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" style="fill:url(#f);"/><rect x="41.1" y="1" width="49" height="51.4" rx="24.5" ry="24.5" style="fill:url(#g); stroke:#8b9fae; stroke-miterlimit:10; stroke-width:1.1px;"/><rect x="41.7" y="3.3" width="48" height="48.5" rx="24" ry="24" style="fill:#f24643; stroke:#510710; stroke-miterlimit:10;"/><g><path d="M55.5,17.7l-2.3,2.6,1.2,1-.7,.7-1.2-1-2.5,2.9-.7-.6,2.5-2.9-1-.9-1.9,2.1-.7-.6c-.1-.6-.4-1.3-.6-2.1l-1.1,1.3-.7-.6,1.4-1.6c-.2-.5-.5-1-.7-1.3l.9-.5c.2,.3,.4,.7,.5,1.1l2.8-3.2,.7,.6-3.1,3.5c.3,.8,.6,1.5,.7,2l1.1-1.3-1.1-1,.7-.7,1.1,.9,1.7-1.9,.7,.6-1.7,1.9,1,.9,2.3-2.6,.7,.6Z" style="fill:#fff;"/><path d="M57.8,11.7c-.4-.4-1.2-1.2-1.7-1.5l.6-.7c.4,.3,1.2,1,1.6,1.4l-.6,.8Zm8,3.2v.9c-1.4,.4-2.7,.7-4.1,1-1.2,.3-1.8,.2-2.7-.5-.3,.5-.5,1-.8,1.5l-.8-.6c.3-.5,.6-1,.9-1.6l-.6-2.4-1,.2-.2-.9,1.8-.4,.8,3.3c.7,.7,1.3,.7,2.4,.5,1.4-.3,2.8-.7,4.1-1.1Zm-5-4.6l-2.2,.5-.2-.8,1.5-.4c-.2-.2-.5-.4-.8-.6l.5-.7c.4,.2,.6,.4,.9,.7l-.3,.4,1.1-.3c.2-.4,.5-1.1,.6-1.4l.9,.2c0,.2-.3,.6-.4,.9l1.6-.4,.2,.8-2.5,.6c0,.2,0,.4,0,.6l2-.5,1.1,4.4-4.6,1.1-1.1-4.4,1.6-.4v-.6Zm2.3,.8l-2.7,.6v.6c.1,0,2.9-.6,2.9-.6v-.6Zm-2.4,2.4l2.7-.6v-.6c-.1,0-2.9,.6-2.9,.6v.6Zm3.1,.6v-.6c-.1,0-2.8,.6-2.8,.6v.6c.1,0,2.8-.6,2.8-.6Z" style="fill:#fff;"/><path d="M72.7,15.6c.3,.9,1.1,2,2.7,2.9l-.6,.9c-1.6-1.2-2.6-2.2-2.9-3.3-.9,.6-2.3,.6-4.5,.4v-1c2,.4,3.4,.2,4-.3l-2.9-1.1,.3-.8,3.1,1.2,.2-.6,.9,.4-.2,.5,3.1,1.2-.3,.8-2.9-1.2Zm-3.8-3.5c1.3,.1,2.5,0,3.5-.2l-2.6-1,.3-.8,1.8,.7c-.2-.5-.6-1.3-.8-1.7l.8-.4c.3,.4,.7,1.3,.9,1.8l-.6,.4,1.1,.4,.7-1.9,.9,.4-.7,1.8,1,.4-.2-.6c.6-.2,1.4-.5,1.9-.8l.4,.8c-.4,.2-1.2,.5-1.8,.7l1.8,.7-.3,.8-3.1-1.2-.6,1.5-.9-.3,.3-.8c-1,.3-2.1,.3-3.7,.3v-1Zm5.2,.6c.6,.6,2,1.8,2.6,2.4l-.6,.7c-.6-.7-1.9-1.8-2.5-2.5l.5-.6Z" style="fill:#fff;"/><path d="M81.6,26.4l-.7,.5-4.7-6.9,.7-.5,2.1,3.1,.9-.6-1.5-2.3,.7-.5,1.5,2.3,.5-.3,.5,.8-.4,.3,1.5,2.3-.7,.5-1.5-2.3-.9,.6,2.1,3.1Zm-2.5-8.2c.9,.2,1.4,.1,2-.1l-.6-.9,.7-.5,.6,.9h.2c0-.1,.8-.7,.8-.7l-.5-.7,.7-.5,2.5,3.7-.7,.5-.5-.7-1.1,.7,.6,.8-.7,.5-.6-.8-1.4,.9-.5-.7,1.4-.9-.6-.9c-.8,.4-1.5,.5-2.5,.3v-.9Zm3.8,4.1l.4,.6c.3,.3,.4,.4,.8,.2l3-2,.5,.8-3.2,2.1c-.7,.5-1,.4-1.6-.4l-.4-.6,.6-.7Zm-.5-3.9l.6,.9,1.1-.7-.6-.9-.8,.6h-.2Zm1.1,4.2l-.5-.7,2.8-1.9,.5,.7-2.8,1.8Z" style="fill:#fff;"/></g><path d="M63.9,38.9v.9c-.8,.1-5.1,.9-6,1.1v-1.7c.7-.1,5-.9,6-1.1v.8Zm-5.5-6.6l-.4-1.7c.3-.1,.5-.3,.6-.5,.4-.5,1.6-2.7,2.3-4.7l1.5,.6c-.6,1.5-1.7,3.5-2.4,4.5,.3,0,1.1,0,1.7-.1,.5-.9,.9-1.7,1.2-2.4l1.4,.6c-.9,2-2.6,4.9-3.4,6.2,.6-.1,2-.4,2.4-.5v1.7c-.3,0-2.4,.4-3.3,.6-.4,0-.8,.2-1.1,.2l-.4-1.8c.6-.2,.6-.3,.9-.7,.5-.6,1-1.5,1.5-2.4-.6,0-1.3,0-1.6,.1-.3,0-.5,0-.8,.1Zm16.1,2.2l-.6,1.8c-2.1-.8-3.7-1.7-5.1-2.8-.6,.5-1.3,1-2.2,1.4,1.2,.3,3.5,1.2,4.8,1.7l-.6,1.7c-1.1-.5-3.5-1.3-4.9-1.7l.4-1.4c-.7,.4-1.4,.7-2.2,1.1l-.8-1.6c1.8-.7,3.1-1.4,4.2-2.2-.6-.6-1.2-1.3-1.7-2.1-.4,.7-1,1.3-1.5,1.9l-.9-1.2c1.4-1.5,2.8-4,3.4-5.7l1.5,.4c-.2,.4-.3,.8-.5,1.3h5.2v1.7c-.9,1.5-1.7,2.6-2.8,3.8,1.2,.8,2.6,1.5,4.4,2.1Zm-9.5,3.6c1.8,.5,5.3,1.7,7.1,2.4l-.5,1.7c-1.8-.7-5.2-2-7.1-2.4l.5-1.7Zm1.7-9.2c.6,.9,1.2,1.7,2,2.5,.9-.8,1.6-1.7,2.2-2.7h-4.1v.3Z" style="fill:#fff;"/></g></g></g></svg>
|
After Width: | Height: | Size: 4.6 KiB |
1
collect-library/src/main/assets/omdb/icon_2092_s.svg
Normal file
1
collect-library/src/main/assets/omdb/icon_2092_s.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="131.3" height="131.3" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 131.3 131.3"><defs><linearGradient id="f" x1="63.4" y1="54.8" x2="68.2" y2="54.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#989898"/><stop offset="0" stop-color="#a3a3a3"/><stop offset=".1" stop-color="#c4c5c5"/><stop offset=".2" stop-color="#d8d9d9"/><stop offset=".3" stop-color="#e0e1e1"/><stop offset=".4" stop-color="#dbdcdc"/><stop offset=".5" stop-color="#cccece"/><stop offset=".6" stop-color="#b5b6b7"/><stop offset=".7" stop-color="#949697"/><stop offset=".8" stop-color="#6a6c6f"/><stop offset=".8" stop-color="#3f4246"/><stop offset="1" stop-color="#404247"/><stop offset="1" stop-color="#43434a"/></linearGradient><linearGradient id="g" x1="41.1" y1="26.7" x2="90.2" y2="26.7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><rect width="131.3" height="131.3" style="fill:none;"/><g><ellipse id="d" cx="65.7" cy="66.2" rx="14.4" ry="3.7" style="fill:#262d34; isolation:isolate; opacity:.2;"/><ellipse id="e" cx="65.7" cy="66.2" rx="7.5" ry="3" style="fill:#535a60;"/><path d="M65.7,42.6h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" style="fill:url(#f);"/><rect x="41.1" y="1" width="49" height="51.4" rx="24.5" ry="24.5" style="fill:url(#g); stroke:#8b9fae; stroke-miterlimit:10; stroke-width:1.1px;"/><g><path d="M65.7,51.3c-12.9,0-23.5-10.5-23.5-23.5v-.6c0-12.9,10.5-23.5,23.5-23.5s23.5,10.5,23.5,23.5v.6c0,12.9-10.5,23.5-23.5,23.5Z" style="fill:#0e992b;"/><path d="M65.7,4.3c12.7,0,23,10.3,23,23v.6c0,12.7-10.3,23-23,23s-23-10.3-23-23v-.6c0-12.7,10.3-23,23-23m0-1h0c-13.2,0-24,10.7-24,24v.6c0,13.2,10.7,24,24,24h0c13.2,0,24-10.7,24-24v-.6c0-13.2-10.7-24-24-24h0Z" style="fill:#02441e;"/></g><g><path d="M55.5,17.7l-2.3,2.6,1.2,1-.7,.7-1.2-1-2.5,2.9-.7-.6,2.5-2.9-1-.9-1.9,2.1-.7-.6c-.1-.6-.4-1.3-.6-2.1l-1.1,1.3-.7-.6,1.4-1.6c-.2-.5-.5-1-.7-1.3l.9-.5c.2,.3,.4,.7,.5,1.1l2.8-3.2,.7,.6-3.1,3.5c.3,.8,.6,1.5,.7,2l1.1-1.3-1.1-1,.7-.7,1.1,.9,1.7-1.9,.7,.6-1.7,1.9,1,.9,2.3-2.6,.7,.6Z" style="fill:#fff;"/><path d="M57.8,11.7c-.4-.4-1.2-1.2-1.7-1.5l.6-.7c.4,.3,1.2,1,1.6,1.4l-.6,.8Zm8,3.2v.9c-1.4,.4-2.7,.7-4.1,1-1.2,.3-1.8,.2-2.7-.5-.3,.5-.5,1-.8,1.5l-.8-.6c.3-.5,.6-1,.9-1.6l-.6-2.4-1,.2-.2-.9,1.8-.4,.8,3.3c.7,.7,1.3,.7,2.4,.5,1.4-.3,2.8-.7,4.1-1.1Zm-5-4.6l-2.2,.5-.2-.8,1.5-.4c-.2-.2-.5-.4-.8-.6l.5-.7c.4,.2,.6,.4,.9,.7l-.3,.4,1.1-.3c.2-.4,.5-1.1,.6-1.4l.9,.2c0,.2-.3,.6-.4,.9l1.6-.4,.2,.8-2.5,.6c0,.2,0,.4,0,.6l2-.5,1.1,4.4-4.6,1.1-1.1-4.4,1.6-.4v-.6Zm2.3,.8l-2.7,.6v.6c.1,0,2.9-.6,2.9-.6v-.6Zm-2.4,2.4l2.7-.6v-.6c-.1,0-2.9,.6-2.9,.6v.6Zm3.1,.6v-.6c-.1,0-2.8,.6-2.8,.6v.6c.1,0,2.8-.6,2.8-.6Z" style="fill:#fff;"/><path d="M72.7,15.6c.3,.9,1.1,2,2.7,2.9l-.6,.9c-1.6-1.2-2.6-2.2-2.9-3.3-.9,.6-2.3,.6-4.5,.4v-1c2,.4,3.4,.2,4-.3l-2.9-1.1,.3-.8,3.1,1.2,.2-.6,.9,.4-.2,.5,3.1,1.2-.3,.8-2.9-1.2Zm-3.8-3.5c1.3,.1,2.5,0,3.5-.2l-2.6-1,.3-.8,1.8,.7c-.2-.5-.6-1.3-.8-1.7l.8-.4c.3,.4,.7,1.3,.9,1.8l-.6,.4,1.1,.4,.7-1.9,.9,.4-.7,1.8,1,.4-.2-.6c.6-.2,1.4-.5,1.9-.8l.4,.8c-.4,.2-1.2,.5-1.8,.7l1.8,.7-.3,.8-3.1-1.2-.6,1.5-.9-.3,.3-.8c-1,.3-2.1,.3-3.7,.3v-1Zm5.2,.6c.6,.6,2,1.8,2.6,2.4l-.6,.7c-.6-.7-1.9-1.8-2.5-2.5l.5-.6Z" style="fill:#fff;"/><path d="M81.6,26.4l-.7,.5-4.7-6.9,.7-.5,2.1,3.1,.9-.6-1.5-2.3,.7-.5,1.5,2.3,.5-.3,.5,.8-.4,.3,1.5,2.3-.7,.5-1.5-2.3-.9,.6,2.1,3.1Zm-2.5-8.2c.9,.2,1.4,.1,2-.1l-.6-.9,.7-.5,.6,.9h.2c0-.1,.8-.7,.8-.7l-.5-.7,.7-.5,2.5,3.7-.7,.5-.5-.7-1.1,.7,.6,.8-.7,.5-.6-.8-1.4,.9-.5-.7,1.4-.9-.6-.9c-.8,.4-1.5,.5-2.5,.3v-.9Zm3.8,4.1l.4,.6c.3,.3,.4,.4,.8,.2l3-2,.5,.8-3.2,2.1c-.7,.5-1,.4-1.6-.4l-.4-.6,.6-.7Zm-.5-3.9l.6,.9,1.1-.7-.6-.9-.8,.6h-.2Zm1.1,4.2l-.5-.7,2.8-1.9,.5,.7-2.8,1.8Z" style="fill:#fff;"/></g><path d="M74.2,39.7l-.3,1.7c-2.8,.1-5.5,.2-8.3,.1-2.7,0-4.5-.6-5.4-2.5-.3,1-.6,2-1.1,3.1l-1.5-.6c1.1-2.5,1.6-4,1.6-7.6h1.6c0,1,0,1.9-.1,2.7,.3,1,.7,1.6,1.2,2.1v-5.7h-3.5v-1.7h3.2v-2.1h-2.6v-1.6h2.6v-2.1h1.7v2.1h2.4v1.6h-2.4v2.1h2.9v1.7h-2.6v2.3h2.4v1.7h-2.4v2.6c.6,.2,1.4,.2,2.3,.3,2.8,0,5.6,0,8.5-.1Zm-3.2-11.7h-4.7v-1.7h6.4v6.1h-4.7v3.1c0,1,.2,1.2,1,1.2,.4,0,.9,0,1.3,0,1,0,1.2-.2,1.3-1.1,0-.3,.1-.8,.1-1.3l1.6,.6c0,.4,0,.7-.2,1.3-.3,1.8-.7,2.2-2.5,2.2-.7,0-1.5,0-2.2,0-1.7,0-2.2-.7-2.2-2.6v-5.2h4.7v-2.8Z" style="fill:#fff;"/></g></g></g></svg>
|
After Width: | Height: | Size: 4.6 KiB |
1
collect-library/src/main/assets/omdb/icon_4005.svg
Normal file
1
collect-library/src/main/assets/omdb/icon_4005.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="56.7" height="56.7" viewBox="0 0 56.7 56.7"><g id="c"><g><g><circle cx="28.3" cy="28.3" r="26.8" style="fill:#fff;"/><path d="M28.3,3c14,0,25.3,11.4,25.3,25.3s-11.4,25.3-25.3,25.3S3,42.3,3,28.3,14.4,3,28.3,3m0-3C12.7,0,0,12.7,0,28.3s12.7,28.3,28.3,28.3,28.3-12.7,28.3-28.3S44,0,28.3,0h0Z" style="fill:#510710;"/></g><circle cx="28.3" cy="28.3" r="26" style="fill:#db4646;"/><circle cx="28.3" cy="28.3" r="18.4" style="fill:#fff;"/><path d="M18.4,17.6h7.1v2.1c-.5,1.8-1.1,3.6-1.8,5.4,1.2,2,1.8,4,1.8,5.7,0,2.7-.7,3.3-3.2,3.7h-.6c0,0-.8-2.1-.8-2.1h.7c1.4-.3,1.8-.5,1.8-2s-.6-3-1.9-4.9c.7-2,1.3-3.8,1.8-5.8h-2.8v18.9h-2.2V17.6Zm21.1,18.9l-1.5,2.1c-4.3-2.4-6.6-4.9-8-9.8h-1.4v7.1l3.5-1.6,.3,2.4c-.6,.2-4.1,1.8-5.8,2.6l-1.1-2.2c.8-.3,.8-.5,.8-1.2V17.7h10.9v11h-5.1c.4,1.1,.8,2,1.3,2.9,1.2-.8,2.4-1.8,3.4-2.7l1.3,1.7c-1.1,1-2.4,1.9-3.5,2.7,1.2,1.3,2.7,2.2,4.7,3.1Zm-10.9-16.6v2.4h6.4v-2.4h-6.4Zm0,6.9h6.4v-2.3h-6.4v2.3Z"/></g></g></svg>
|
After Width: | Height: | Size: 1022 B |
@ -33,6 +33,7 @@ enum class DataCodeEnum(var tableName: String, var code: String) {
|
||||
OMDB_RAMP_7("高速直连出口匝道高速出入口匝道", "2037-7"),
|
||||
OMDB_MULTI_DIGITIZED("上下线分离", "2040"),
|
||||
OMDB_LANE_NUM("车道数", "2041"),
|
||||
OMDB_PHY_LANENUM("物理车道数", "2097"),
|
||||
OMDB_VIADUCT("高架", "2043"),
|
||||
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"),
|
||||
OMDB_LANE_CONSTRUCTION("车道施工", "2090"),
|
||||
|
@ -1531,6 +1531,35 @@ public class GeometryTools {
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dist 0.00001为一米 大于0为左侧,小于0为右侧
|
||||
* @param wkt 几何
|
||||
* @return
|
||||
*/
|
||||
public static String computeLine(Double dist,String wkt){
|
||||
if(!TextUtils.isEmpty(wkt)){
|
||||
Geometry lineString1 = GeometryTools.createGeometry(wkt);
|
||||
BufferParameters parameters1 = new BufferParameters();
|
||||
parameters1.setJoinStyle(BufferParameters.CAP_FLAT);
|
||||
parameters1.setEndCapStyle(BufferParameters.CAP_FLAT);
|
||||
parameters1.setSingleSided(true);
|
||||
|
||||
Geometry buffer = BufferOp.bufferOp(lineString1, dist, parameters1);
|
||||
int coorsLength = lineString1.getCoordinates().length;
|
||||
List<Coordinate> list = new ArrayList<>();
|
||||
for (int i = coorsLength; i < buffer.getCoordinates().length-1; i++) {
|
||||
list.add(buffer.getCoordinates()[i]);
|
||||
}
|
||||
Coordinate[] coordinates = new Coordinate[list.size()];
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
coordinates[i] = list.get(i);
|
||||
}
|
||||
String lineString = createLineString(coordinates).toString();
|
||||
return lineString;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static FootAndDistance pointToLineDistance(GeoPoint point, Geometry geometry) {
|
||||
//定义垂线
|
||||
FootAndDistance pointPairDistance = new FootAndDistance(point);
|
||||
|
Loading…
x
Reference in New Issue
Block a user