Conflicts:
	app/src/main/assets/omdb_config.json
This commit is contained in:
qiji4215 2023-08-17 10:07:06 +08:00
commit ac17e764ea
19 changed files with 992 additions and 816 deletions

View File

@ -1,389 +1,413 @@
{
"tableMap" : {
"1012": {
"table": "OMDB_CHECKPOINT",
"code": 1012,
"name": "检查点",
"zoomMin": 15,
"zoomMax": 19
},
"2001": {
"table": "OMDB_RD_LINK",
"code": 2001,
"name": "道路线",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false
},
"2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
"code": 2002,
"name": "道路功能等级",
"zoomMin": 15,
"zoomMax": 17
},
"2004": {
"table": "OMDB_LINK_ATTRIBUTE",
"code": 2004,
"name": "道路属性",
"zoomMin": 15,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadText()"
}
]
},
"2008": {
"table": "OMDB_RD_LINK_KIND",
"code": 2008,
"name": "道路种别",
"zoomMin": 15,
"zoomMax": 20,
"checkLinkId": false
},
"2010": {
"table": "OMDB_LINK_DIRECT",
"code": 2010,
"name": "道路方向",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false
},
"2011": {
"table": "OMDB_LINK_NAME",
"code": 2011,
"name": "道路名",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadName()"
}
]
},
"2013": {
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013,
"name": "车道边界类型",
"zoomMin": 18,
"zoomMax": 20,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "unpackingLaneBoundary()"
}
]
},
"2019": {
"table": "OMDB_LINK_SPEEDLIMIT",
"code": 2019,
"name": "常规线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2020": {
"table": "OMDB_LINK_SPEEDLIMIT_COND",
"code": 2020,
"name": "条件线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2021": {
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
"code": 2021,
"name": "可变线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2022": {
"table": "OMDB_CON_ACCESS",
"code": 2022,
"name": "全封闭"
},
"2037": {
"table": "OMDB_RAMP",
"code": 2037,
"name": "匝道"
},
"2040": {
"table": "OMDB_MULTI_DIGITIZED",
"code": 2040,
"name": "上下线分离"
},
"2041":{
"table": "OMDB_LANE_NUM",
"code": 2041,
"name": "车道数"
},
"2083":{
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
"code": 2083,
"name": "道路边界类型",
"zoomMin": 18,
"zoomMax": 20,
"checkLinkId": false
},
"2201":{
"table": "OMDB_BRIDGE",
"code": 2201,
"name": "桥",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint(bridgeType,OMDB_BRIDGE)"
}
]
},
"2202":{
"table": "OMDB_TUNNEL",
"code": 2202,
"name": "隧道",
"zoomMin": 15,
"zoomMax": 20,
"transformer2Code": ""
},
"2204":{
"table": "OMDB_ROUNDABOUT",
"code": 2204,
"name": "环岛",
"zoomMin": 15,
"zoomMax": 19
},
"2205":{
"table": "OMDB_LINK_FORM1",
"code": 2205,
"name": "道路形态1",
"zoomMin": 15,
"zoomMax": 17
},
"2206":{
"table": "OMDB_LINK_FORM2",
"code": 2206,
"name": "道路形态2",
"zoomMin": 15,
"zoomMax": 17,
"transformer2Code": ""
},
"4001": {
"table": "OMDB_INTERSECTION",
"code": 4001,
"name": "路口",
"zoomMin": 15,
"zoomMax": 17,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateIntersectionReference()"
}
]
},
"4002": {
"table": "OMDB_SPEEDLIMIT",
"code": 4002,
"name": "常规点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "maxSpeed",
"v": "0",
"klib": "maxSpeed",
"vlib": "限"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
}
]
},
"4003":{
"table": "OMDB_SPEEDLIMIT_COND",
"code": 4003,
"name": "条件点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "maxSpeed",
"v": "0|",
"klib": "maxSpeed",
"vlib": "限"
}
]
},
"4004":{
"table": "OMDB_SPEEDLIMIT_VAR",
"code": 4004,
"name": "可变点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "location",
"v": "1",
"klib": "location",
"vlib": "左"
},
{
"k": "location",
"v": "2",
"klib": "locationlib",
"vlib": "右"
},
{
"k": "location",
"v": "3",
"klib": "location",
"vlib": "上"
}
]
},
"4006":{
"table": "OMDB_RESTRICTION",
"code": 4006,
"name": "普通交限",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "checkCircleRoad()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateBack()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine()"
}
]
},
"4010":{
"table": "OMDB_ELECTRONICEYE",
"code": 4010,
"name": "电子眼",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine(3)"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateElectronName()"
}
]
},
"4022": {
"table": "OMDB_TRAFFICLIGHT",
"code": 4022,
"name": "交通灯",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
]
},
"4601":{
"table": "OMDB_LANEINFO",
"code": 4601,
"name": "车信",
"zoomMin": 15,
"zoomMax": 17,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight(direct=3)"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "unpackingLaneInfo()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
}
]
},
"5001":{
"table": "OMDB_LANE_LINK_LG",
"code": 5001,
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateAddWidthLine()"
}
]
},
"5002":{
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
[
{
"tableGroupName": "普通图层",
"tableMap" : {
"1012": {
"table": "OMDB_CHECKPOINT",
"code": 1012,
"name": "检查点",
"zoomMin": 15,
"zoomMax": 19
},
"2001": {
"table": "OMDB_RD_LINK",
"code": 2001,
"name": "道路线",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false
},
"2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
"code": 2002,
"name": "道路功能等级",
"zoomMin": 15,
"zoomMax": 17
},
"2008": {
"table": "OMDB_RD_LINK_KIND",
"code": 2008,
"name": "道路种别",
"zoomMin": 15,
"zoomMax": 20,
"checkLinkId": false
},
"2010": {
"table": "OMDB_LINK_DIRECT",
"code": 2010,
"name": "道路方向",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false
},
"2011": {
"table": "OMDB_LINK_NAME",
"code": 2011,
"name": "道路名",
"zoomMin": 15,
"zoomMax": 17,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadName()"
}
]
},
"2013": {
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013,
"name": "车道边界类型",
"zoomMin": 18,
"zoomMax": 20,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "unpackingLaneBoundary()"
}
]
},
"2019": {
"table": "OMDB_LINK_SPEEDLIMIT",
"code": 2019,
"name": "常规线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2020": {
"table": "OMDB_LINK_SPEEDLIMIT_COND",
"code": 2020,
"name": "条件线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2021": {
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
"code": 2021,
"name": "可变线限速",
"zoomMin": 15,
"zoomMax": 17
},
"2041":{
"table": "OMDB_LANE_NUM",
"code": 2041,
"name": "车道数"
},
"2083":{
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
"code": 2083,
"name": "道路边界类型",
"zoomMin": 18,
"zoomMax": 20,
"checkLinkId": false
},
"2201":{
"table": "OMDB_BRIDGE",
"code": 2201,
"name": "桥",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint(bridgeType,OMDB_BRIDGE)"
}
]
},
"2202":{
"table": "OMDB_TUNNEL",
"code": 2202,
"name": "隧道",
"zoomMin": 15,
"zoomMax": 20,
"transformer2Code": ""
},
"3012":{
"table": "OMDB_FILL_AREA",
"code": 3012,
"name": "导流区",
"zoomMin": 16,
"zoomMax": 20
},
"4001": {
"table": "OMDB_INTERSECTION",
"code": 4001,
"name": "路口",
"zoomMin": 15,
"zoomMax": 17,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateIntersectionReference()"
}
]
},
"4002": {
"table": "OMDB_SPEEDLIMIT",
"code": 4002,
"name": "常规点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "maxSpeed",
"v": "0",
"klib": "maxSpeed",
"vlib": "限"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
}
]
},
"4003":{
"table": "OMDB_SPEEDLIMIT_COND",
"code": 4003,
"name": "条件点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "maxSpeed",
"v": "0|",
"klib": "maxSpeed",
"vlib": "限"
}
]
},
"4004":{
"table": "OMDB_SPEEDLIMIT_VAR",
"code": 4004,
"name": "可变点限速",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "location",
"v": "1",
"klib": "location",
"vlib": "左"
},
{
"k": "location",
"v": "2",
"klib": "locationlib",
"vlib": "右"
},
{
"k": "location",
"v": "3",
"klib": "location",
"vlib": "上"
}
]
},
"4006":{
"table": "OMDB_RESTRICTION",
"code": 4006,
"name": "普通交限",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "checkCircleRoad()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateBack()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine()"
}
]
},
"4010":{
"table": "OMDB_ELECTRONICEYE",
"code": 4010,
"name": "电子眼",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine(3)"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateElectronName()"
}
]
},
"4022": {
"table": "OMDB_TRAFFICLIGHT",
"code": 4022,
"name": "交通灯",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
]
},
"4601":{
"table": "OMDB_LANEINFO",
"code": 4601,
"name": "车信",
"zoomMin": 15,
"zoomMax": 17,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "translateRight(direct=3)"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "unpackingLaneInfo()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferenceLine()"
}
]
},
"5001":{
"table": "OMDB_LANE_LINK_LG",
"code": 5001,
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateAddWidthLine()"
}
]
},
"5002":{
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
}
}
},
{
"tableGroupName": "道路形态",
"tableMap" : {
"2004": {
"table": "OMDB_LINK_ATTRIBUTE",
"code": 2004,
"name": "道路属性",
"zoomMin": 15,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadText()"
}
]
},
"2022": {
"table": "OMDB_CON_ACCESS",
"code": 2022,
"name": "全封闭"
},
"2037": {
"table": "OMDB_RAMP",
"code": 2037,
"name": "匝道"
},
"2040": {
"table": "OMDB_MULTI_DIGITIZED",
"code": 2040,
"name": "上下线分离"
},
"2204":{
"table": "OMDB_ROUNDABOUT",
"code": 2204,
"name": "环岛",
"zoomMin": 15,
"zoomMax": 17,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint()"
}
]
},
"2205":{
"table": "OMDB_LINK_FORM1",
"code": 2205,
"name": "道路形态1",
"zoomMin": 15,
"zoomMax": 17
},
"2206":{
"table": "OMDB_LINK_FORM2",
"code": 2206,
"name": "道路形态2",
"zoomMin": 15,
"zoomMax": 17,
"transformer2Code": ""
}
}
}
}
]

View File

@ -102,7 +102,7 @@ class Constant {
const val SELECT_TAKEPHOTO_OR_RECORD = "select_takephoto_or_record"
const val OMDB_CONFIG = "omdb_config.json"
const val OTHER_CONFIG = "other_config.json"
// const val OTHER_CONFIG = "other_config.json"
val OMDB_LAYER_VISIBLE_LIST: MutableList<String> = mutableListOf() // 记录OMDB数据显示的图层名称列表

View File

@ -50,16 +50,23 @@ class ImportOMDBHelper @AssistedInject constructor(
private val configFile: File =
File("${Constant.USER_DATA_PATH}", Constant.OMDB_CONFIG)
private val importConfig by lazy {
private val importConfigList by lazy {
openConfigFile()
}
/**
* 读取config的配置文件
* */
fun openConfigFile(): ImportConfig {
fun openConfigFile(): List<ImportConfig> {
val resultList = mutableListOf<ImportConfig>()
val configStr = configFile.readText()
return gson.fromJson(configStr, ImportConfig::class.java)
val type = object : TypeToken<List<ImportConfig>>() {}.type
return try {
val result = gson.fromJson<List<ImportConfig>>(configStr, type)
result ?: resultList
} catch (e: Exception) {
resultList
}
}
/**
@ -135,257 +142,270 @@ class ImportOMDBHelper @AssistedInject constructor(
val unZipFiles = ZipUtils.unzipFile(omdbZipFile, unZipFolder)
// 将listResult数据插入到Realm数据库中
val realm = Realm.getDefaultInstance()
// 先获取当前配置的所有图层的个数,方便后续计算数据解析进度
var tableNum = 0
for (importConfig in importConfigList) {
tableNum += importConfig.tableMap.size
}
realm.beginTransaction()
try {
// 遍历解压后的文件,读取该数据返回
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
val currentConfig = currentEntry.value
val txtFile = unZipFiles.find {
it.name == currentConfig.table
}
for (importConfig in importConfigList) {
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
val currentConfig = currentEntry.value
val txtFile = unZipFiles.find {
it.name == currentConfig.table
}
val listResult = mutableListOf<RenderEntity>()
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()) {
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
map["qi_code"] =
if (currentConfig.code == 0) currentConfig.code else currentEntry.key
map["qi_code"] = if (currentConfig.code == 0) currentConfig.code else currentEntry.key
map["qi_zoomMin"] = currentConfig.zoomMin
map["qi_zoomMax"] = currentConfig.zoomMax
// 先查询这个mesh下有没有数据如果有则跳过即可
// val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst()
val renderEntity = RenderEntity()
renderEntity.code = map["qi_code"].toString()
renderEntity.name = map["qi_name"].toString()
renderEntity.table = map["qi_table"].toString()
renderEntity.taskId = task.id
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
// 其他数据插入到Properties中
renderEntity.geometry = map["geometry"].toString()
for ((key, value) in map) {
when (value) {
is String -> renderEntity.properties.put(key, value)
is Int -> renderEntity.properties.put(
key,
value.toInt().toString()
)
is Double -> renderEntity.properties.put(
key,
value.toDouble().toString()
)
else -> renderEntity.properties.put(key, value.toString())
val listResult = mutableListOf<RenderEntity>()
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()) {
if (line == null || line.trim() == "") {
continue
}
}
//遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){
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
map["qi_code"] =
if (currentConfig.code == 0) currentConfig.code else currentEntry.key
map["qi_code"] = if (currentConfig.code == 0) currentConfig.code else currentEntry.key
map["qi_zoomMin"] = currentConfig.zoomMin
map["qi_zoomMax"] = currentConfig.zoomMax
if(renderEntity.properties.containsKey("linkPid")){
// 先查询这个mesh下有没有数据如果有则跳过即可
// val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst()
val renderEntity = RenderEntity()
renderEntity.code = map["qi_code"].toString()
renderEntity.name = map["qi_name"].toString()
renderEntity.table = map["qi_table"].toString()
renderEntity.taskId = task.id
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
var currentLinkPid = renderEntity.properties["linkPid"]
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){
task.hadLinkDvoList.forEach{
if(it.linkPid==renderEntity.properties["linkPid"]){
renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach
}
}
// 其他数据插入到Properties中
renderEntity.geometry = map["geometry"].toString()
for ((key, value) in map) {
when (value) {
is String -> renderEntity.properties.put(key, value)
is Int -> renderEntity.properties.put(
key,
value.toInt().toString()
)
is Double -> renderEntity.properties.put(
key,
value.toDouble().toString()
)
else -> renderEntity.properties.put(key, value.toString())
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code && renderEntity.properties.containsKey("linkIn")){
// 如果properties中不包含name那么自动将要素名称添加进properties中
if (!renderEntity.properties.containsKey("name")) {
renderEntity.properties["name"] = renderEntity.name;
}
//遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){
if (renderEntity.properties["linkIn"] != null) {
if(renderEntity.properties.containsKey("linkPid")){
var currentLinkPid = renderEntity.properties["linkIn"]
var currentLinkPid = renderEntity.properties["linkPid"]
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){
task.hadLinkDvoList.forEach{
if(it.linkPid==currentLinkPid){
if(it.linkPid==renderEntity.properties["linkPid"]){
renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach
}
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){
if (renderEntity.properties["linkList"] != null) {
}else if(renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code && renderEntity.properties.containsKey("linkIn")){
Log.e("qj", "linkList==开始${renderEntity.name}==${renderEntity.properties["linkList"]}}")
if (renderEntity.properties["linkIn"] != null) {
val linkList = renderEntity.properties["linkList"]
var currentLinkPid = renderEntity.properties["linkIn"]
if (!linkList.isNullOrEmpty()&&linkList!="null") {
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){
Log.e("qj", "linkList==${renderEntity.name}==${renderEntity.properties["linkList"]}}")
val list: List<LinkList> = gson.fromJson(linkList, object : TypeToken<List<LinkList>>() {}.type)
if (list != null) {
m@for (link in list){
for(hadLink in task.hadLinkDvoList){
if (hadLink.linkPid == link.linkPid) {
renderEntity.enable = 1
Log.e("qj", "${renderEntity.name}==包括任务link==${renderEntity.geometry}")
break@m
}
task.hadLinkDvoList.forEach{
if(it.linkPid==currentLinkPid){
renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach
}
}
}
}else{
renderEntity.enable = 2
Log.e("qj", "简单路口")
}
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){
if (renderEntity.properties["linkList"] != null) {
Log.e("qj", "linkList==开始${renderEntity.name}==${renderEntity.properties["linkList"]}}")
val linkList = renderEntity.properties["linkList"]
if (!linkList.isNullOrEmpty()&&linkList!="null") {
Log.e("qj", "linkList==${renderEntity.name}==${renderEntity.properties["linkList"]}}")
val list: List<LinkList> = gson.fromJson(linkList, object : TypeToken<List<LinkList>>() {}.type)
if (list != null) {
m@for (link in list){
for(hadLink in task.hadLinkDvoList){
if (hadLink.linkPid == link.linkPid) {
renderEntity.enable = 1
Log.e("qj", "${renderEntity.name}==包括任务link==${renderEntity.geometry}")
break@m
}
}
}
}
}else{
renderEntity.enable = 2
Log.e("qj", "简单路口")
}
}
}else{
renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
}
}else{
renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
}
}else{
renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
}
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)
//对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){
//对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){
Log.e("qj","道路属性===0")
Log.e("qj","道路属性===0")
var type = renderEntity.properties["sa"]
var type = renderEntity.properties["sa"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
Log.e("qj","道路属性===1")
}else{
type = renderEntity.properties["pa"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
Log.e("qj","道路属性===2")
} else{
type = renderEntity.properties["frontage"]
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
Log.e("qj","道路属性===1")
}else{
type = renderEntity.properties["pa"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
Log.e("qj","道路属性===3")
}else{
type = renderEntity.properties["mainSideAccess"]
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
Log.e("qj","道路属性===2")
} else{
type = renderEntity.properties["frontage"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
Log.e("qj","道路属性===4")
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
Log.e("qj","道路属性===3")
}else{
type = renderEntity.properties["mainSideAccess"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
Log.e("qj","道路属性===4")
}else{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
Log.e("qj","道路属性===5")
continue
}
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RAMP.code){
/*匝道*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"93"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_1.code
"98"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_2.code
"99"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_3.code
"100"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_4.code
"102"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_5.code
"103"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_6.code
"104"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_7.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code){
/*道路形态1*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"35"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_1.code
"37"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_2.code
"38"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_3.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code){
/*道路形态2*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"10"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_1.code
"11"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_2.code
"17"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_3.code
"18"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_4.code
"20"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_5.code
"22"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_6.code
"36"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_7.code
"52"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_8.code
"53"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_9.code
"54"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_10.code
"60"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_11.code
"84"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_12.code
"85"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_13.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code){
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","1","6","8","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){
//过滤不需要渲染的要素
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","3","4","5","7","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
Log.e("qj","道路属性===5")
continue
}
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RAMP.code){
/*匝道*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"93"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_1.code
"98"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_2.code
"99"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_3.code
"100"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_4.code
"102"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_5.code
"103"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_6.code
"104"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_7.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code){
/*道路形态1*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"35"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_1.code
"37"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_2.code
"38"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_3.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code){
/*道路形态2*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"10"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_1.code
"11"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_2.code
"17"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_3.code
"18"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_4.code
"20"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_5.code
"22"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_6.code
"36"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_7.code
"52"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_8.code
"53"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_9.code
"54"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_10.code
"60"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_11.code
"84"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_12.code
"85"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_13.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code){
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","1","6","8","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){
//过滤不需要渲染的要素
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","3","4","5","7","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}
listResult.add(renderEntity)
listResult.add(renderEntity)
if (resultEntity != null) {
realm.insert(renderEntity)
if (resultEntity != null) {
realm.insert(renderEntity)
}
}
}
}
}
// 1个文件发送一次flow流
emit("${index + 1}/${importConfig.tableMap.size}")
// 如果当前解析的是OMDB_RD_LINK数据将其缓存在预处理类中以便后续处理其他要素时使用
if (currentConfig.table == "OMDB_RD_LINK") {
importConfig.preProcess.cacheRdLink =
listResult.associateBy { it.properties["linkPid"] }
// 1个文件发送一次flow流
emit("${index + 1}/${tableNum}")
// 如果当前解析的是OMDB_RD_LINK数据将其缓存在预处理类中以便后续处理其他要素时使用
if (currentConfig.table == "OMDB_RD_LINK") {
importConfig.preProcess.cacheRdLink =
listResult.associateBy { it.properties["linkPid"] }
}
}
}
realm.commitTransaction()

View File

@ -6,12 +6,12 @@ import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.tools.LayerConfigUtils.Companion.gson
import java.io.File
class LayerConfigUtils {
companion object {
private val omdbConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OMDB_CONFIG)
private val otherConfigFile = File("${Constant.USER_DATA_PATH}", Constant.OTHER_CONFIG)
private val gson = Gson()
fun getLayerConfigList(): List<ImportConfig> {
@ -20,29 +20,19 @@ class LayerConfigUtils {
Constant.LAYER_CONFIG_LIST = getLayerConfigListFromAssetsFile()
}
return Constant.LAYER_CONFIG_LIST!!
// return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let {
// if (it != null) {
// val result: List<ImportConfig> =
// gson.fromJson(it, object : TypeToken<List<ImportConfig>>() {}.type)
// result
// } else {
// LayerConfigUtils.getLayerConfigListFromAssetsFile()
// }
// }
}
private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> {
val resultList = mutableListOf<ImportConfig>()
if (omdbConfigFile.exists()) {
val omdbConfiStr = FileIOUtils.readFile2String(omdbConfigFile)
val omdbConfig = gson.fromJson<ImportConfig>(omdbConfiStr, ImportConfig::class.java)
resultList.add(omdbConfig)
}
if (otherConfigFile.exists()) {
val otherConfiStr = FileIOUtils.readFile2String(otherConfigFile)
val otherConfig =
gson.fromJson<ImportConfig>(otherConfiStr, ImportConfig::class.java)
resultList.add(otherConfig)
val type = object : TypeToken<List<ImportConfig>>() {}.type
return try {
val result = gson.fromJson<List<ImportConfig>>(omdbConfiStr, type)
result ?: resultList
} catch (e: Exception) {
resultList
}
}
return resultList
}

View File

@ -158,9 +158,13 @@ class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val checkIntent = Intent()
checkIntent.action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA
someActivityResultLauncher.launch(checkIntent)
try {
val checkIntent = Intent()
checkIntent.action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA
someActivityResultLauncher.launch(checkIntent)
} catch (e: Exception) {
Log.e("jingo", "检查TTS失败 $e")
}
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

View File

@ -8,6 +8,7 @@ import android.graphics.drawable.AnimationDrawable
import android.graphics.drawable.BitmapDrawable
import android.os.Build
import android.os.Bundle
import android.provider.ContactsContract.Data
import android.text.TextUtils
import android.util.Log
import android.view.Gravity
@ -332,7 +333,7 @@ class MainViewModel @Inject constructor(
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects =
realmOperateHelper.getRealmTools(QsRecordBean::class.java,false).findAll()
realmOperateHelper.getRealmTools(QsRecordBean::class.java, false).findAll()
list = realm.copyFromRealm(objects)
}
mapController.markerHandle.removeAllQsMarker()
@ -349,7 +350,7 @@ class MainViewModel @Inject constructor(
var list = mutableListOf<NoteBean>()
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java,false).findAll()
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java, false).findAll()
list = realm.copyFromRealm(objects)
}
@ -491,10 +492,13 @@ class MainViewModel @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(point = point)
val linkList = realmOperateHelper.queryLink(point = point)
/*val linkList = realmOperateHelper.queryLine(
point = point,
)
// val linkList = realmOperateHelper.queryLine(point = point, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE")
buffer = 2.5,
table = "OMDB_LANE_MARK_BOUNDARYTYPE"
)*/
@ -518,7 +522,7 @@ class MainViewModel @Inject constructor(
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
if (element.code == "2011") {
if (element.code == DataCodeEnum.OMDB_LINK_NAME.code) {
hisRoadName = true
liveDataRoadName.postValue(element)
continue
@ -541,12 +545,56 @@ class MainViewModel @Inject constructor(
)
Log.e("jingo", "捕捉到的数据code ${element.code}")
when (element.code) {
//车道数,种别,功能等级,线限速,道路方向
DataCodeEnum.OMDB_LANE_NUM.code, DataCodeEnum.OMDB_RD_LINK_KIND.code, DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code, DataCodeEnum.OMDB_LINK_DIRECT.code -> topSignList.add(
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,//上下线分离
DataCodeEnum.OMDB_CON_ACCESS.code,//全封闭
-> {
if (signBean.iconText != "") {
topSignList.add(
signBean
)
}
}
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code, //线限速,
DataCodeEnum.OMDB_LINK_DIRECT.code,//道路方向,
DataCodeEnum.OMDB_RAMP.code, //匝道
DataCodeEnum.OMDB_BRIDGE.code,//桥
DataCodeEnum.OMDB_TUNNEL.code,//隧道
DataCodeEnum.OMDB_ROUNDABOUT.code,//环岛
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code,//出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code,//辅路
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code,//SA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code,//PA
DataCodeEnum.OMDB_LINK_FORM1_1.code,
DataCodeEnum.OMDB_LINK_FORM1_2.code,
DataCodeEnum.OMDB_LINK_FORM1_3.code,
DataCodeEnum.OMDB_LINK_FORM2_1.code,
DataCodeEnum.OMDB_LINK_FORM2_2.code,
DataCodeEnum.OMDB_LINK_FORM2_3.code,
DataCodeEnum.OMDB_LINK_FORM2_4.code,
DataCodeEnum.OMDB_LINK_FORM2_5.code,
DataCodeEnum.OMDB_LINK_FORM2_6.code,
DataCodeEnum.OMDB_LINK_FORM2_7.code,
DataCodeEnum.OMDB_LINK_FORM2_8.code,
DataCodeEnum.OMDB_LINK_FORM2_9.code,
DataCodeEnum.OMDB_LINK_FORM2_10.code,
DataCodeEnum.OMDB_LINK_FORM2_11.code,
DataCodeEnum.OMDB_LINK_FORM2_12.code,
DataCodeEnum.OMDB_LINK_FORM2_13.code,
DataCodeEnum.OMDB_VIADUCT.code,
-> topSignList.add(
signBean
)
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code, DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code, DataCodeEnum.OMDB_ELECTRONICEYE.code, DataCodeEnum.OMDB_TRAFFICLIGHT.code, DataCodeEnum.OMDB_LANEINFO.code -> signList.add(
DataCodeEnum.OMDB_SPEEDLIMIT.code,//常规点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code,//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code,//可变点限速
DataCodeEnum.OMDB_ELECTRONICEYE.code,//电子眼
DataCodeEnum.OMDB_TRAFFICLIGHT.code,//交通灯
DataCodeEnum.OMDB_LANEINFO.code,//车信
-> signList.add(
signBean
)
}
@ -555,17 +603,23 @@ class MainViewModel @Inject constructor(
val realm = realmOperateHelper.getRealmDefaultInstance()
val entity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and().equalTo(
"properties['linkIn']", it
).findFirst()
val entity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and()
.equalTo(
"properties['linkIn']", it
).findFirst()
if (entity != null) {
val outLink = entity.properties["linkOut"]
val linkOutEntity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and().equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
val linkOutEntity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and()
.equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
if (linkOutEntity != null) {
mapController.lineHandler.linksLayer.addLine(
linkOutEntity.geometry, 0x7DFF0000
@ -747,15 +801,16 @@ class MainViewModel @Inject constructor(
fun refreshOMDBLayer(layerConfigList: List<ImportConfig>) {
// 根据获取到的配置信息,筛选未勾选的图层名称
if (layerConfigList != null && !layerConfigList.isEmpty()) {
val omdbVisibleList = layerConfigList.filter { importConfig ->
importConfig.tableGroupName == "OMDB数据"
}.first().tableMap.filter { entry ->
val tableInfo = entry.value
!tableInfo.checked
}.map { entry ->
val tableInfo = entry.value
tableInfo.table
}.toList()
val omdbVisibleList = mutableListOf<String>()
layerConfigList.forEach {
omdbVisibleList.addAll(it.tableMap.filter { entry ->
val tableInfo = entry.value
!tableInfo.checked
}.map { entry ->
val tableInfo = entry.value
tableInfo.table
}.toList())
}
com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY =
omdbVisibleList.toTypedArray()
// 刷新地图

View File

@ -3,6 +3,7 @@ package com.navinfo.omqs.ui.activity.map
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.navinfo.collect.library.enums.DataCodeEnum
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.AdapterTopSignBinding
@ -23,7 +24,16 @@ class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = nul
val item = data[position]
if (item.iconId != 0)
bd.topSignText.background = holder.viewBinding.root.context.getDrawable(item.iconId)
bd.topSignName.text = item.name
when (item.renderEntity.code) {
DataCodeEnum.OMDB_CON_ACCESS.code,
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,
DataCodeEnum.OMDB_TUNNEL.code,
DataCodeEnum.OMDB_ROUNDABOUT.code,
DataCodeEnum.OMDB_VIADUCT.code,
-> bd.topSignName.text = ""
else -> bd.topSignName.text = item.name
}
bd.topSignText.text = item.iconText
if (data.size == 1) {
bd.topSignLeftLine.visibility = View.GONE

View File

@ -129,7 +129,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
// 定位到指定位置
niMapController.mMapView.vtmMap.animator()
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
.animateTo(GeoPoint( 39.91975038055932,116.35447089476969 ))
.animateTo(GeoPoint( 40.45403725443716, 115.81488271796577))
}
R.id.personal_center_menu_open_all_layer -> {
MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS)

View File

@ -51,7 +51,7 @@ class SignMoreInfoFragment : BaseFragment() {
when (it.code) {
//道路名
DataCodeEnum.OMDB_RD_LINK.code -> {
DataCodeEnum.OMDB_LINK_NAME.code -> {
val adapter = RoadNameInfoAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getRoadNameList(it))

View File

@ -29,14 +29,70 @@ class SignUtil {
DataCodeEnum.OMDB_LINK_DIRECT.code -> getRoadDirectionText(data)
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
//全封闭
DataCodeEnum.OMDB_CON_ACCESS.code -> getConAccessText(data)
//匝道
DataCodeEnum.OMDB_RAMP.code -> getRampText(data)
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
//常规点限速,条件点限速
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 -> getMultiDigitized(data)
//桥
DataCodeEnum.OMDB_BRIDGE.code -> getBridgeType(data)
//隧道
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
//主辅路出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code -> "出入口"
//辅路
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code -> "辅路"
//SA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code -> "SA"
//PA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code -> "PA"
DataCodeEnum.OMDB_LINK_FORM1_1.code -> "U-T"
DataCodeEnum.OMDB_LINK_FORM1_2.code -> "提右"
DataCodeEnum.OMDB_LINK_FORM1_3.code -> "提左"
DataCodeEnum.OMDB_LINK_FORM2_1.code -> "IC"
DataCodeEnum.OMDB_LINK_FORM2_2.code -> "JCT"
DataCodeEnum.OMDB_LINK_FORM2_3.code -> "跨线地"
DataCodeEnum.OMDB_LINK_FORM2_4.code -> "私道"
DataCodeEnum.OMDB_LINK_FORM2_5.code -> "步行街"
DataCodeEnum.OMDB_LINK_FORM2_6.code -> "公交道"
DataCodeEnum.OMDB_LINK_FORM2_7.code -> "POI"
DataCodeEnum.OMDB_LINK_FORM2_8.code -> "区域内"
DataCodeEnum.OMDB_LINK_FORM2_9.code -> "P出入"
DataCodeEnum.OMDB_LINK_FORM2_10.code -> "P虚拟"
DataCodeEnum.OMDB_LINK_FORM2_11.code -> "风景路"
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
DataCodeEnum.OMDB_VIADUCT.code->"高架"
else -> ""
}
}
/**
* 获取桥的类型值
*/
private fun getBridgeType(data: RenderEntity): String {
val bridgeType = data.properties["bridgeType"]
try {
when (bridgeType?.toInt()) {
1 -> return "固定桥"
2 -> return "可移桥"
3 -> return "跨线桥"
}
} catch (e: Throwable) {
}
return ""
}
/**
* 常规线限速值
*/
@ -44,6 +100,45 @@ class SignUtil {
return "${data.properties["maxSpeed"]}"
}
/**
* 获取全封闭值
*/
private fun getConAccessText(data: RenderEntity): String {
val conAccess = data.properties["conAccess"]
try {
if (conAccess?.toInt() == 1)
return "全封闭"
} catch (e: Throwable) {
}
return ""
}
/**
* 获取匝道值
*/
private fun getRampText(data: RenderEntity): String {
try {
val ramp = data.properties["formOfWay"]
return when (ramp?.toInt()) {
93 -> "普通匝"
98 -> "高入匝"
99 -> "高出匝"
100 -> "高连匝"
102 -> "直入匝"
103 -> "直出匝"
104 -> "出入匝"
else -> {
""
}
}
} catch (e: Throwable) {
}
return ""
}
/**
*获取道路功能等级文字
*/
@ -87,6 +182,10 @@ class SignUtil {
DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> "车道边界类型"
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> "线限速"
//全封闭
DataCodeEnum.OMDB_CON_ACCESS.code -> "全封闭" //暂时不要标题
//匝道
DataCodeEnum.OMDB_RAMP.code -> "匝道"
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> "车道数"
//常规点限速
@ -103,10 +202,44 @@ class SignUtil {
DataCodeEnum.OMDB_TRAFFICLIGHT.code -> "交通灯"
//车信
DataCodeEnum.OMDB_LANEINFO.code -> "车信"
//上下线分离
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> "上下线分离"
//桥
DataCodeEnum.OMDB_BRIDGE.code -> ""
//隧道
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code -> "道路属性"
DataCodeEnum.OMDB_LINK_FORM1_1.code,
DataCodeEnum.OMDB_LINK_FORM1_2.code,
DataCodeEnum.OMDB_LINK_FORM1_3.code,
DataCodeEnum.OMDB_LINK_FORM2_1.code,
DataCodeEnum.OMDB_LINK_FORM2_2.code,
DataCodeEnum.OMDB_LINK_FORM2_3.code,
DataCodeEnum.OMDB_LINK_FORM2_4.code,
DataCodeEnum.OMDB_LINK_FORM2_5.code,
DataCodeEnum.OMDB_LINK_FORM2_6.code,
DataCodeEnum.OMDB_LINK_FORM2_7.code,
DataCodeEnum.OMDB_LINK_FORM2_8.code,
DataCodeEnum.OMDB_LINK_FORM2_9.code,
DataCodeEnum.OMDB_LINK_FORM2_10.code,
DataCodeEnum.OMDB_LINK_FORM2_11.code,
DataCodeEnum.OMDB_LINK_FORM2_12.code,
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "道路形态"
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
else -> ""
}
}
/**
* 获取车道边界类型详细信息
*/
@ -296,6 +429,21 @@ class SignUtil {
return result != 0
}
/**
* 获取上下线分离值
*/
private fun getMultiDigitized(data: RenderEntity): String {
val multiDigitized = data.properties["multiDigitized"]
try {
if (multiDigitized?.toInt() == 1)
return "上下线"
} catch (e: Throwable) {
}
return ""
}
/**
* 获取限速值文字
*/
@ -490,10 +638,22 @@ class SignUtil {
stringBuffer.append("当前道路")
for (item in topSignList) {
when (item.renderEntity.code) {
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,")
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append(
"功能等级${
item.iconText.substring(
2
)
},"
)
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append("${item.iconText.substringBefore("|")}车道")
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append(
"${
item.iconText.substringBefore(
"|"
)
}车道"
)
}
}
return stringBuffer.toString()
@ -504,34 +664,32 @@ class SignUtil {
*/
fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> {
val list = mutableListOf<RoadNameBean>()
if (data.code == "2011") {
try {
val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr)
for (i in 0 until array.length()) {
val jsonObject = array.getJSONObject(0)
val name = jsonObject.optString("name", "")
val type = jsonObject.optInt("nameType", 0)
val seqNum = jsonObject.optInt("seqNum", 1)
val nameClass = jsonObject.optInt("nameClass", 1)
val bean = RoadNameBean(
name = name, type = type, seqNum = seqNum, nameClass = nameClass
)
list.add(bean)
}
/**
* 排序
*/
list.sortWith { n1, n2 ->
if (n1.nameClass != n2.nameClass) {
n1.nameClass.compareTo(n2.nameClass)
} else {
n1.seqNum.compareTo(n2.seqNum)
}
}
} catch (e: Exception) {
try {
val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr)
for (i in 0 until array.length()) {
val jsonObject = array.getJSONObject(i)
val name = jsonObject.optString("name", "")
val type = jsonObject.optInt("nameType", 0)
val seqNum = jsonObject.optInt("seqNum", 1)
val nameClass = jsonObject.optInt("nameClass", 1)
val bean = RoadNameBean(
name = name, type = type, seqNum = seqNum, nameClass = nameClass
)
list.add(bean)
}
/**
* 排序
*/
list.sortWith { n1, n2 ->
if (n1.nameClass != n2.nameClass) {
n1.nameClass.compareTo(n2.nameClass)
} else {
n1.seqNum.compareTo(n2.seqNum)
}
}
} catch (e: Exception) {
}
return list
}

View File

@ -82,7 +82,7 @@
android:id="@+id/main_activity_top_sign_recyclerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="280dp"
android:layout_marginLeft="220dp"
android:layout_marginTop="2dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
>
<TextView
android:id="@+id/title"

View File

@ -54,6 +54,9 @@
<style-text fill="#000000" id="max-speed-limit" k="name" size="18" stroke="#000000"
stroke-width="0.1" />
<style-text caption="true" fill="#2d51bc" font-family="black" id="area-name"
k="name" size="12" stroke="#ffffff" stroke-width="0.4" />
<!--###### AREA styles ######-->
<!--residential-->
@ -113,6 +116,8 @@
<style-area fill="#3742fa" id="sign-bg" />
<!-- 对象要素的默认样式 -->
<style-area fill="#00000000" stroke-width="2" stroke="#ffffff" id="obj-area" />
<!--###### LINE styles ######-->
<!-- base style for fixed width lines -->
@ -2264,5 +2269,11 @@
<line use="s2e" />
</m>
</m>
<!-- 导流区 -->
<m v="OMDB_FILL_AREA">
<area use="obj-area" repeat="false" src="assets:omdb/tex_fill_area_3012.png"></area>
<text use="area-name"></text>
</m>
</m>
</rendertheme>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="132.4" height="362.8" viewBox="0 0 132.4 362.8"><defs><style>.d{fill:#fff;}.e{fill:#ffd4ca;opacity:0;}</style></defs><g id="c"><g><rect class="e" x="-115.2" y="115.3" width="362.8" height="132.2" transform="translate(-115.2 247.6) rotate(-90)"/><g><polygon class="d" points="132.4 67.1 132.3 67 132.3 67.2 132.4 67.1"/><polygon class="d" points="0 67 0 67.1 0 66.9 0 67"/><polygon class="d" points="66.2 16.1 124.8 74.7 132.3 67.2 132.3 67 73.8 8.4 73.8 8.4 66.2 .8 0 66.9 0 67.1 7.6 74.6 66.2 16.1"/><polygon class="d" points="0 138.9 0 139 0 138.8 0 138.9"/><polygon class="d" points="132.4 138.9 132.3 138.8 132.3 139 132.4 138.9"/><polygon class="d" points="66.2 87.9 124.8 146.5 132.3 139 132.3 138.8 73.8 80.3 73.8 80.3 66.2 72.7 0 138.8 0 139 7.6 146.5 66.2 87.9"/><polygon class="d" points="0 210.7 0 210.8 0 210.6 0 210.7"/><polygon class="d" points="132.4 210.7 132.3 210.6 132.3 210.8 132.4 210.7"/><polygon class="d" points="89.2 182.7 124.8 218.3 132.3 210.8 132.3 210.6 89.2 167.5 89.2 182.7"/><polygon class="d" points="45.6 180.4 45.6 165.1 0 210.6 0 210.8 7.6 218.3 45.6 180.4"/><polygon class="d" points="132.4 282.6 132.3 282.5 132.3 282.7 132.4 282.6"/><polygon class="d" points="0 282.5 0 282.6 0 282.4 0 282.5"/><polygon class="d" points="65.4 232.4 50.1 232.4 0 282.4 0 282.6 7.6 290.2 65.4 232.4"/><polygon class="d" points="67 232.4 124.8 290.2 132.3 282.7 132.3 282.5 82.3 232.4 67 232.4"/><polygon class="d" points="0 354.4 0 354.5 0 354.3 0 354.4"/><polygon class="d" points="132.4 354.4 132.3 354.3 132.3 354.5 132.4 354.4"/><polygon class="d" points="73.8 295.8 66.2 288.2 0 354.3 0 354.5 7.6 362 66.2 303.4 124.8 362 132.3 354.5 132.3 354.3 73.8 295.8 73.8 295.8"/><path class="e" d="M72.3,202.8h-8.4c1.3,1.2,3.1,2.8,4.9,4.5,1.3-1.4,2.4-2.9,3.5-4.5Z"/><path class="e" d="M61.8,204.9l2-2.1h-2.4v11c2-1.3,3.8-2.8,5.4-4.4-1.8-1.8-3.6-3.5-5-4.6Z"/><polygon class="e" points="72.5 166.1 70.8 164.3 71.1 166.1 72.5 166.1"/><path class="e" d="M68.9,211.6c-1.8,1.8-3.8,3.3-5.8,4.7l-1.8-2.3v2.4h4.9c0-.1,.1,0,.1,0h7.1c-1.1-1.4-2.8-3.1-4.5-4.9Z"/><rect class="e" x="62.2" y="129.5" width="9.9" height="1.6"/><path class="e" d="M63.6,135.4c3,.1,5.7,0,8.7,0,1.6,0,1.8-.3,2-1.3v-.6c.1,0-12.1,0-12.1,0v.6c0,1.1,.2,1.3,1.4,1.4Z"/><path class="e" d="M69.5,144.6c1.4,0,1.5-.3,1.5-1.8v-1h-7.1c1.1,.7,2.2,1.5,2.9,2l-.5,.7,2.3,2.3-.7-2.2h1.7Z"/><polygon class="e" points="65.4 232.4 67 232.4 66.2 231.6 65.4 232.4"/><polygon class="d" points="66.1 216.4 66.3 216.4 66.2 216.3 66.1 216.4"/><path class="d" d="M62.7,137.8c3.7,0,7.1,0,10.8,0,2.5,0,2.9-.2,3.4-2.3,0-.4,.1-.8,.2-1.3l-2-.7v-6.7h-15.8v7.9c0,2.5,.9,3.1,3.4,3.1Zm-.6-8.4h9.9v1.6h-9.9v-1.6Zm0,4h12.2v.6c-.3,1-.4,1.2-2.1,1.3-3.1,0-5.7,.1-8.7,0-1.2,0-1.4-.3-1.4-1.4v-.6Z"/><path class="d" d="M74,143.7v-1.9h3.6v-2.6h-3.6v-1.1h-3c0,0,0,1.1,0,1.1h-13.6v2.6h4.3l-.8,1c1.3,.8,2.9,2,3.9,2.9l1.3-1.3h.1c0,.1,.5-.6,.5-.6-.7-.6-1.8-1.4-2.9-2h7.1v1c0,1.5,0,1.7-1.5,1.8h-1.7c0,0,.7,2.2,.7,2.2l.5,.5h1.5c2.8-.4,3.4-.9,3.4-3.6Z"/><polygon class="d" points="68.8 147.4 69.1 147.4 68.6 146.9 68.8 147.4"/><path class="d" d="M64.9,145.8c.1,.1,.3,.2,.4,.3l1-1.6h-.1c0-.1-1.3,1.2-1.3,1.2Z"/><path class="d" d="M75.9,180.3c0,.4,0,.8,0,1.1,0,.6-.1,.7-.4,.8-.2,0-.4,0-.6,0-.3,0-.3-.2-.3-.8v-6.4h-2.6c0-.1,0,7,0,7,0,1.7,0,2.6,1.7,2.8,.8,0,2,0,2.3,0,1.8-.2,2-.5,2.3-2.6,0-.4,0-.7,.1-1.1v-.7s-2.3-.7-2.3-.7v.6Z"/><path class="d" d="M68.1,166.1h-4.6v2.7h3.1c-1.1,1.3-2.2,2.4-2.7,2.9-.3,.2-.5,.4-1.1,.5l.7,2.4h2.2c2.2-.2,6.2-.4,8.4-.5,.4,.5,.7,.9,.9,1.3l2-1.9c-1.4-2.1-3-3.7-3.8-4.5l-2,1.4c.3,.3,.6,.7,1.1,1.2-1.8,0-3.7,.1-5.2,.2,.6-.4,1.9-1.7,3-3h5.1l-2.7-2.7h-1.4l-.3-1.8-.5-.5h-2.7c0,.1,.5,2.3,.5,2.3Z"/><path class="d" d="M63.1,167c-.4-.4-1.5-1.2-2.4-1.9l-2,2c.9,.7,2.2,1.7,2.8,2.3l1.5-2.4Z"/><path class="d" d="M62.5,172.4c-1.1-1-3.1-2.4-4.1-3.1l-1.5,2.3c1.3,.9,2.4,1.8,4.1,3.2l1.5-2.4Z"/><path class="d" d="M60.9,183.6l2.1,1.9c3.2-2.9,3.8-3.2,3.8-10.4h-2.6c0,4.8,0,6.1-3.2,8.5Z"/><path class="d" d="M60,175.7c-.8,2.5-1.7,5.1-3,7.7l2.8,1.4c1.2-3,1.9-5.5,2.7-8l-2.4-1.1Z"/><polygon class="d" points="68 184.4 70.6 184.4 70.6 175 68 174.9 68 184.4"/><polygon class="d" points="70.7 163.8 70.3 163.8 70.8 164.3 70.7 163.8"/><path class="d" d="M59.3,164.2l-1.6,2.2c.2,.1,.6,.4,1,.8l2-2c-.6-.4-1.2-.8-1.4-1Z"/><polygon class="d" points="76.8 168.8 76.8 166.1 72.5 166.1 75.2 168.8 76.8 168.8"/><path class="d" d="M61.4,216.4v-2.4l1.8,2.3c2-1.4,4-2.9,5.8-4.7,1.7,1.8,3.3,3.5,4.5,4.9h-7.1l2.9,2.9h7.7v-2.9h-3.2l2.1-2.2c-1.2-1.3-2.9-3-4.7-4.8,1.5-1.6,2.8-3.3,4-5l-2.2-1.6h3.7v-2.9h-18.3v19.5h5l2.9-2.9h-4.7Zm11-13.7c-1.1,1.6-2.2,3.1-3.5,4.5-1.8-1.7-3.5-3.3-4.9-4.5h8.4Zm-11,0h2.4l-2,2.1c1.3,1.1,3.1,2.7,5,4.6-1.6,1.6-3.4,3-5.4,4.4v-11Z"/><polygon class="d" points="66.3 216.4 66.1 216.4 63.2 219.3 69.2 219.3 66.3 216.4"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -4,161 +4,63 @@ package com.navinfo.collect.library.enums
* 要素枚举定义
* */
enum class DataCodeEnum(var tableName: String, var code: String) {
OMDB_CHECKPOINT("检查点", "1012"), OMDB_RD_LINK(
"道路线",
"2001"
),
OMDB_CHECKPOINT("检查点", "1012"),
OMDB_RD_LINK("道路线", "2001"),
OMDB_RD_LINK_FUNCTION_CLASS("道路功能等级", "2002"),
OMDB_LINK_ATTRIBUTE("道路属性", "2004"),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"), OMDB_LINK_ATTRIBUTE_PA(
"道路属性-PA",
"2004-2"
),
OMDB_LINK_ATTRIBUTE_FORNTAGE(
"道路属性-辅路",
"2004-3"
),
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS(
"道路属性-主辅路出入口",
"2004-4"
),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"),
OMDB_LINK_ATTRIBUTE_PA("道路属性-PA", "2004-2"),
OMDB_LINK_ATTRIBUTE_FORNTAGE("道路属性-辅路", "2004-3"),
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS("道路属性-主辅路出入口", "2004-4"),
OMDB_RD_LINK_KIND("道路种别", "2008"),
OMDB_LINK_DIRECT("道路方向", "2010"), OMDB_LINK_NAME(
"道路名",
"2011"
),
OMDB_LINK_DIRECT("道路方向", "2010"),
OMDB_LINK_NAME("道路名", "2011"),
OMDB_LANE_MARK_BOUNDARYTYPE("车道边界类型", "2013"),
OMDB_LINK_SPEEDLIMIT("常规线限速", "2019"), OMDB_LINK_SPEEDLIMIT_COND(
"条件线限速",
"2020"
),
OMDB_LINK_SPEEDLIMIT("常规线限速", "2019"),
OMDB_LINK_SPEEDLIMIT_COND("条件线限速", "2020"),
OMDB_LINK_SPEEDLIMIT_VAR("可变线限速", "2021"),
OMDB_CON_ACCESS("全封闭", "2022"),
OMDB_RAMP(
"匝道",
"2037"
),
OMDB_RAMP_1(
"普通路连接匝道",
"2037-1"
),
OMDB_RAMP_2(
"高速入口匝道",
"2037-2"
),
OMDB_RAMP_3(
"高速出口匝道",
"2037-3"
),
OMDB_RAMP_4(
"高速连接匝道",
"2037-4"
),
OMDB_RAMP_5(
"高速直连入口匝道",
"2037-5"
),
OMDB_RAMP_6(
"高速直连出口匝道",
"2037-6"
),
OMDB_RAMP_7(
"高速直连出口匝道高速出入口匝道",
"2037-7"
),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"), OMDB_LANE_NUM("车道数", "2041"),
OMDB_RAMP("匝道", "2037"),
OMDB_RAMP_1("普通路连接匝道", "2037-1"),
OMDB_RAMP_2("高速入口匝道", "2037-2"),
OMDB_RAMP_3("高速出口匝道", "2037-3"),
OMDB_RAMP_4("高速连接匝道", "2037-4"),
OMDB_RAMP_5("高速直连入口匝道", "2037-5"),
OMDB_RAMP_6("高速直连出口匝道", "2037-6"),
OMDB_RAMP_7("高速直连出口匝道高速出入口匝道", "2037-7"),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"),
OMDB_LANE_NUM("车道数", "2041"),
OMDB_VIADUCT("高架", "2043"),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_BRIDGE(
"",
"2201"
),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"),
OMDB_BRIDGE("", "2201"),
OMDB_TUNNEL("隧道", "2202"),
OMDB_ROUNDABOUT(
"环岛",
"2204"
),
OMDB_LINK_FORM1(
"道路形态1",
"2205"
),
OMDB_LINK_FORM1_1(
"U-Turn",
"2205-1"
),
OMDB_LINK_FORM1_2(
"提前右转",
"2205-2"
),
OMDB_LINK_FORM1_3(
"提前左转",
"2205-3"
),
OMDB_LINK_FORM2(
"道路形态2",
"2206"
),
OMDB_LINK_FORM2_1(
"IC",
"2206-1"
),
OMDB_LINK_FORM2_2(
"JCT",
"2206-2"
),
OMDB_LINK_FORM2_3(
"跨线地道",
"2206-3"
),
OMDB_LINK_FORM2_4(
"私道",
"2206-4"
),
OMDB_LINK_FORM2_5(
"步行街",
"2206-5"
),
OMDB_LINK_FORM2_6(
"公交专用道",
"2206-6"
),
OMDB_LINK_FORM2_7(
"POI 连接路",
"2206-7"
),
OMDB_LINK_FORM2_8(
"区域内道路",
"2206-8"
),
OMDB_LINK_FORM2_9(
"停车场出入口连接路",
"2206-9"
),
OMDB_LINK_FORM2_10(
"停车场内部虚拟连接路",
"2206-10"
),
OMDB_LINK_FORM2_11(
"风景路线",
"2206-11"
),OMDB_LINK_FORM2_12(
"车辆测试路段",
"2206-12"
),
OMDB_LINK_FORM2_13(
"驾照考试路段",
"2206-13"
),
OMDB_ROUNDABOUT("环岛", "2204"),
OMDB_LINK_FORM1("道路形态1", "2205"),
OMDB_LINK_FORM1_1("U-Turn", "2205-1"),
OMDB_LINK_FORM1_2("提前右转", "2205-2"),
OMDB_LINK_FORM1_3("提前左转", "2205-3"),
OMDB_LINK_FORM2("道路形态2", "2206"),
OMDB_LINK_FORM2_1("IC", "2206-1"),
OMDB_LINK_FORM2_2("JCT", "2206-2"),
OMDB_LINK_FORM2_3("跨线地道", "2206-3"),
OMDB_LINK_FORM2_4("私道", "2206-4"),
OMDB_LINK_FORM2_5("步行街", "2206-5"),
OMDB_LINK_FORM2_6("公交专用道", "2206-6"),
OMDB_LINK_FORM2_7("POI 连接路", "2206-7"),
OMDB_LINK_FORM2_8("区域内道路", "2206-8"),
OMDB_LINK_FORM2_9("停车场出入口连接路", "2206-9"),
OMDB_LINK_FORM2_10("停车场内部虚拟连接路", "2206-10"),
OMDB_LINK_FORM2_11("风景路线", "2206-11"),
OMDB_LINK_FORM2_12("车辆测试路段", "2206-12"),
OMDB_LINK_FORM2_13("驾照考试路段", "2206-13"),
OMDB_INTERSECTION("路口", "4001"),
OMDB_SPEEDLIMIT("常规点限速", "4002"), OMDB_SPEEDLIMIT_COND(
"条件点限速",
"4003"
),
OMDB_SPEEDLIMIT_VAR("可变点限速", "4004"), OMDB_RESTRICTION("普通交限", "4006"),
OMDB_ELECTRONICEYE("电子眼", "4010"), OMDB_TRAFFICLIGHT(
"交通灯",
"4022"
),
OMDB_LANEINFO("车信", "4601"), OMDB_LANE_LINK_LG("车道中心线", "5001")
OMDB_SPEEDLIMIT("常规点限速", "4002"),
OMDB_SPEEDLIMIT_COND("条件点限速", "4003"),
OMDB_SPEEDLIMIT_VAR("可变点限速", "4004"),
OMDB_RESTRICTION("普通交限", "4006"),
OMDB_ELECTRONICEYE("电子眼", "4010"),
OMDB_TRAFFICLIGHT("交通灯", "4022"),
OMDB_LANEINFO("车信", "4601"),
OMDB_LANE_LINK_LG("车道中心线", "5001")
}

View File

@ -5,8 +5,6 @@ import android.util.Log;
import androidx.annotation.RequiresApi;
import com.navinfo.collect.library.data.RealmUtils;
import com.navinfo.collect.library.data.entity.GeometryFeatureEntity;
import com.navinfo.collect.library.data.entity.RenderEntity;
import com.navinfo.collect.library.system.Constant;
import com.navinfo.collect.library.utils.MapParamUtils;

2
vtm

@ -1 +1 @@
Subproject commit 8717b07ebff4dd61226abb19474be6567a736ad8
Subproject commit bb130bcdbead90cf923d36c837af4afcdf846701