Merge branch 'master' of https://gitlab.navinfo.com/CollectVehicle/OneMapQS
Conflicts: app/src/main/assets/omdb_config.json
This commit is contained in:
@@ -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": ""
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -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数据显示的图层名称列表
|
||||
|
||||
|
||||
@@ -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()&¤tLinkPid!="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()&¤tLinkPid!="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()&¤tLinkPid!="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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
// 刷新地图
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user