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

This commit is contained in:
xiaoyan 2023-08-15 16:16:15 +08:00
commit 29f6ba22bc
9 changed files with 165 additions and 82 deletions

View File

@ -12,7 +12,8 @@
"code": 2001, "code": 2001,
"name": "道路线", "name": "道路线",
"zoomMin": 15, "zoomMin": 15,
"zoomMax": 17 "zoomMax": 17,
"checkLinkId": false
}, },
"2002": { "2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS", "table": "OMDB_RD_LINK_FUNCTION_CLASS",
@ -111,7 +112,7 @@
"name": "全封闭" "name": "全封闭"
}, },
"2037": { "2037": {
"table": "OMDB_TAMP", "table": "OMDB_RAMP",
"code": 2037, "code": 2037,
"name": "匝道" "name": "匝道"
}, },
@ -157,12 +158,19 @@
"transformer2Code": "" "transformer2Code": ""
}, },
"2204":{ "2204":{
"table": "OMDB_RoundAbout", "table": "OMDB_ROUNDABOUT",
"code": 2204, "code": 2204,
"name": "环岛", "name": "环岛",
"zoomMin": 15, "zoomMin": 15,
"zoomMax": 17, "zoomMax": 17,
"transformer2Code": "" "transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint()"
}
]
}, },
"2205":{ "2205":{
"table": "OMDB_LINK_FORM1", "table": "OMDB_LINK_FORM1",

View File

@ -265,28 +265,39 @@ class ImportOMDBHelper @AssistedInject constructor(
Log.e("qj","${renderEntity.name}==不包括任务linkPid") Log.e("qj","${renderEntity.name}==不包括任务linkPid")
} }
//道路属性code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)
//对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){ if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){
var type = renderEntity.properties["SA"] Log.e("qj","道路属性===0")
var type = renderEntity.properties["sa"]
if(type!=null&&type=="1"){ if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
Log.e("qj","道路属性===1")
}else{ }else{
type = renderEntity.properties["PA"] type = renderEntity.properties["pa"]
if(type!=null&&type=="1"){ if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
Log.e("qj","道路属性===2")
} else{ } else{
type = renderEntity.properties["FRONTAGE"] type = renderEntity.properties["frontage"]
if(type!=null&&type=="1"){ if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
Log.e("qj","道路属性===3")
}else{ }else{
type = renderEntity.properties["MAIN_SIDE_ACCESS"] type = renderEntity.properties["mainSideAccess"]
if(type!=null&&type=="1"){ if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
Log.e("qj","道路属性===4")
}else{ }else{
renderEntity.enable=0 renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}") Log.e("qj","过滤不显示数据${renderEntity.table}")
Log.e("qj","道路属性===5")
continue continue
} }
} }
@ -362,8 +373,7 @@ class ImportOMDBHelper @AssistedInject constructor(
} }
listResult.add(renderEntity) listResult.add(renderEntity)
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)
if (resultEntity != null) { if (resultEntity != null) {
realm.insert(renderEntity) realm.insert(renderEntity)
} }

View File

@ -218,6 +218,7 @@ class ImportPreProcess {
val startReference = ReferenceEntity() val startReference = ReferenceEntity()
startReference.renderEntityId = renderEntity.id startReference.renderEntityId = renderEntity.id
startReference.name = "${renderEntity.name}参考点" startReference.name = "${renderEntity.name}参考点"
startReference.code = renderEntity.code
startReference.table = renderEntity.table startReference.table = renderEntity.table
startReference.zoomMin = renderEntity.zoomMin startReference.zoomMin = renderEntity.zoomMin
startReference.zoomMax = renderEntity.zoomMax startReference.zoomMax = renderEntity.zoomMax
@ -225,8 +226,7 @@ class ImportPreProcess {
startReference.enable = renderEntity.enable startReference.enable = renderEntity.enable
// 起点坐标 // 起点坐标
startReference.geometry = startReference.geometry = GeometryTools.createGeometry(GeoPoint(pointStart.y, pointStart.x)).toString()
GeometryTools.createGeometry(GeoPoint(pointStart.y, pointStart.x)).toString()
startReference.properties = renderEntity.properties startReference.properties = renderEntity.properties
startReference.properties["qi_table"] = renderEntity.table startReference.properties["qi_table"] = renderEntity.table
Log.e("qj","generateS2EReferencePoint===$table===$proKey") Log.e("qj","generateS2EReferencePoint===$table===$proKey")
@ -238,13 +238,16 @@ class ImportPreProcess {
} }
} else { } else {
startReference.properties["type"] = "s_2_p" startReference.properties["type"] = "s_2_p"
Log.e("qj","generateS2EReferencePoint===s_2_p${renderEntity.name}")
} }
startReference.properties["geometry"] = startReference.geometry
Realm.getDefaultInstance().insert(startReference) Realm.getDefaultInstance().insert(startReference)
val endReference = ReferenceEntity() val endReference = ReferenceEntity()
endReference.renderEntityId = renderEntity.id endReference.renderEntityId = renderEntity.id
endReference.name = "${renderEntity.name}参考点" endReference.name = "${renderEntity.name}参考点"
endReference.code = renderEntity.code
endReference.table = renderEntity.table endReference.table = renderEntity.table
endReference.zoomMin = renderEntity.zoomMin endReference.zoomMin = renderEntity.zoomMin
endReference.zoomMax = renderEntity.zoomMax endReference.zoomMax = renderEntity.zoomMax
@ -252,8 +255,7 @@ class ImportPreProcess {
endReference.enable = renderEntity.enable endReference.enable = renderEntity.enable
// 终点坐标 // 终点坐标
endReference.geometry = endReference.geometry = GeometryTools.createGeometry(GeoPoint(pointEnd.y, pointEnd.x)).toString()
GeometryTools.createGeometry(GeoPoint(pointEnd.y, pointEnd.x)).toString()
endReference.properties = renderEntity.properties endReference.properties = renderEntity.properties
endReference.properties["qi_table"] = renderEntity.table endReference.properties["qi_table"] = renderEntity.table
if (renderEntity.table == table) { if (renderEntity.table == table) {
@ -262,7 +264,9 @@ class ImportPreProcess {
} }
} else { } else {
endReference.properties["type"] = "e_2_p" endReference.properties["type"] = "e_2_p"
Log.e("qj","generateS2EReferencePoint===e_2_p${renderEntity.name}")
} }
endReference.properties["geometry"] = endReference.geometry
Realm.getDefaultInstance().insert(endReference) Realm.getDefaultInstance().insert(endReference)
} }
@ -458,14 +462,30 @@ class ImportPreProcess {
fun generateRoadText(renderEntity: RenderEntity) { fun generateRoadText(renderEntity: RenderEntity) {
// 根据类型进行文字转换 // 根据类型进行文字转换
if (renderEntity.code != null) { if (renderEntity.code != null) {
if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code){
var type = renderEntity.properties["sa"]
if(type!=null&&type=="1"){
renderEntity.properties["name"] = "SA" renderEntity.properties["name"] = "SA"
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code){ renderEntity.properties["type"] = "1"
renderEntity.properties["name"] = "PA" }else{
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code){ type = renderEntity.properties["pa"]
if(type!=null&&type=="1"){
renderEntity.properties["type"] = "2"
Log.e("qj","generateRoadText===2")
} else{
type = renderEntity.properties["frontage"]
if(type!=null&&type=="1"){
renderEntity.properties["name"] = "FRONTAGE" renderEntity.properties["name"] = "FRONTAGE"
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code){ renderEntity.properties["type"] = "3"
}else{
type = renderEntity.properties["mainSideAccess"]
if(type!=null&&type=="1"){
renderEntity.properties["name"] = "MAIN" renderEntity.properties["name"] = "MAIN"
renderEntity.properties["type"] = "4"
}
}
}
} }
} }
} }

View File

@ -182,7 +182,7 @@
width="0.1" /> width="0.1" />
<!--道路形态--> <!--道路形态-->
<style-line dasharray="8,2,2,2,2,2" id="road_morphology" repeat-gap="3" repeat-start="0" stroke="#fcba5a" width="0.2" /> <style-line dasharray="8,2,2,2,2,2" id="road_morphology" repeat-gap="3" repeat-start="0" stroke="#1afa29" width="0.5" />
<!--###### ASSIGNMENT ######--> <!--###### ASSIGNMENT ######-->
@ -1978,56 +1978,9 @@
<m k="width" v="~"> <m k="width" v="~">
<line stroke="#7A88A0" width="2.8" /> <line stroke="#7A88A0" width="2.8" />
</m> </m>
<m k="width" v="~"> <!-- <m k="width" v="~">
<line stroke="#4624FF" width="0.1" /> <line stroke="#4624FF" width="0.1" />
</m> </m>-->
</m>
<!--隧道-->
<m v="OMDB_TUNNEL">
<m k="formOfWay">
<line dasharray="4,4" stroke="#4624FF" width="0.4" />
</m>
<m k="type" v="s_2_p">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2202_0.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
<m k="type" v="e_2_p">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2202_1.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
</m>
<!---->
<m v="OMDB_BRIDGE">
<m k="bridgeType" v="1|2|3">
<line stroke="#335431B2" width="1" />
<lineSymbol repeat-gap="24" repeat-start="0" symbol-height="24" src="assets:omdb/icon_2201_1.svg" />
</m>
<m k="type" v="s_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
</m> </m>
<!-- 检查点 --> <!-- 检查点 -->
@ -2123,19 +2076,21 @@
<!-- 道路属性 --> <!-- 道路属性 -->
<m v="OMDB_LINK_ATTRIBUTE"> <m v="OMDB_LINK_ATTRIBUTE">
<m k="code" v="OMDB_LINK_ATTRIBUTE_SA"> <m k="type" v="1">
<text use="road" stroke="#fcba5a" size="16"></text> <text use="road" size="12"></text>
<line stroke="#1afa29" width="0.5" />
</m> </m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_PA"> <m k="type" v="2">
<text use="road" stroke="#fcba5a" size="16"></text> <text use="road" size="12"></text>
<line stroke="#1afa29" width="0.5" />
</m> </m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_FORNTAGE"> <m k="type" v="3">
<line use="road_morphology" /> <line use="road_morphology" />
</m> </m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS"> <m k="type" v="4">
<line use="road_morphology" /> <line use="road_morphology" />
</m> </m>
@ -2171,6 +2126,66 @@
<line use="road_morphology" /> <line use="road_morphology" />
</m> </m>
<!-- 环岛 -->
<m v="OMDB_ROUNDABOUT">
<line stroke="#fcba5a" width="0.5" />
<m k="type" v="s_2_p">
<symbol repeat="false" repeat-start="0" rotate="false" repeat-gap="0"
src="assets:omdb/icon_2201_0.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
<m k="type" v="e_2_p">
<symbol repeat="false" repeat-start="0" rotate="false" repeat-gap="0"
src="assets:omdb/icon_2204_0.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
</m>
<!--隧道-->
<m v="OMDB_TUNNEL">
<m k="formOfWay">
<line dasharray="4,4" stroke="#4624FF" width="0.4" />
</m>
<m k="type" v="s_2_p">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2202_0.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
<m k="type" v="e_2_p">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2202_1.svg" symbol-height="24" symbol-width="24"></symbol>
</m>
</m>
<!---->
<m v="OMDB_BRIDGE">
<m k="bridgeType" v="1|2|3">
<line stroke="#665431B2" width="1" />
<lineSymbol repeat-gap="24" repeat-start="0" symbol-height="24" src="assets:omdb/icon_2201_1.svg" />
</m>
<m k="type" v="s_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
</m>
<!--常规点限速--> <!--常规点限速-->
<m v="OMDB_SPEEDLIMIT"> <m v="OMDB_SPEEDLIMIT">
<m k="speedFlag" v="0"> <m k="speedFlag" v="0">

View File

@ -1 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80"><defs><style>.a{fill:#1b23b4;stroke:#fceaa0;stroke-width:3px;}.b{fill:#fceaa0;}.c{stroke:none;}.d{fill:none;}</style></defs><g transform="translate(-268 -381)"><g transform="translate(9446 7585)"><g class="a" transform="translate(-9178 -7204)"><circle class="c" cx="40" cy="40" r="40"/><circle class="d" cx="40" cy="40" r="38.5"/></g></g><path class="b" d="M257.043,173.635V146.2c0-9.344-8.378-16.918-18.708-16.918s-18.712,7.574-18.712,16.918v27.436H214.94V145.378c0-11.808,10.6-21.378,23.684-21.378s23.683,9.57,23.683,21.378v28.257Zm-18.13-42.773c13.594-.133,16.377,13.195,16.377,13.195v29.579H254.7l-9.934-14.271V144.584s-.436-4.223-5.851-4.223-6.431,4.223-6.431,4.223v14.779l-10.2,14.271h-.913V144.06S223.714,131.009,238.913,130.861Zm5.049,28.5,10.159,14.271h-31.21l10.159-14.272h10.893Zm0,0" transform="translate(69.376 269.184)"/></g></svg> <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
<defs>
<style>
.a{fill:#1b23b4;stroke:#fceaa0;stroke-width:3px;}.b{fill:#fceaa0;}.c{stroke:none;}.d{fill:none;}
</style>
</defs>
<g transform="translate(-268 -381)">
<g transform="translate(9446 7585)">
<g class="a" transform="translate(-9178 -7204)">
<circle class="c" cx="40" cy="40" r="40" />
<circle class="d" cx="40" cy="40" r="38.5" />
</g>
</g>
<path class="b"
d="M257.043,173.635V146.2c0-9.344-8.378-16.918-18.708-16.918s-18.712,7.574-18.712,16.918v27.436H214.94V145.378c0-11.808,10.6-21.378,23.684-21.378s23.683,9.57,23.683,21.378v28.257Zm-18.13-42.773c13.594-.133,16.377,13.195,16.377,13.195v29.579H254.7l-9.934-14.271V144.584s-.436-4.223-5.851-4.223-6.431,4.223-6.431,4.223v14.779l-10.2,14.271h-.913V144.06S223.714,131.009,238.913,130.861Zm5.049,28.5,10.159,14.271h-31.21l10.159-14.272h10.893Zm0,0"
transform="translate(69.376 269.184)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 928 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1692082615557" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="5694" width="80" height="80"
xmlns:xlink="http://www.w3.org/1999/xlink">
<path
d="M512 512m-469.333333 0a469.333333 469.333333 0 1 0 938.666666 0 469.333333 469.333333 0 1 0-938.666666 0Z"
fill="#1b23b4" p-id="5695" data-spm-anchor-id="a313x.search_index.0.i5.4d923a81SJBtt2"
class="selected"></path>
<path
d="M307.029333 499.84a215.722667 215.722667 0 0 0 85.76 191.317333l6.229334 3.84-12.202667-72.533333 82.688 50.432 42.026667 133.077333-138.666667 22.869334L290.133333 778.453333l70.741334-21.973333-2.645334-2.517333a286.421333 286.421333 0 0 1-123.221333-250.24l71.978667-3.882667z m426.453334-180.48l116.352 78.250667 24.832 93.056-66.474667-32.512 0.128 3.669333c30.250667 147.925333-60.8 295.424-209.792 334.506667-6.485333 1.706667-12.928 3.157333-19.413333 4.394666l-21.717334-68.266666a221.44 221.44 0 0 0 22.784-4.693334c109.653333-28.757333 177.578667-135.381333 159.488-244.096l-1.877333-7.04-41.557333 60.842667-24.832-93.013333 62.08-125.098667z m-52.352-48.554667l-31.914667 64.213334a219.733333 219.733333 0 0 0-262.784 9.898666l-5.205333 5.12 73.941333 5.333334-68.949333 67.754666-140.288 9.088 10.325333-139.093333 68.906667-67.712 4.821333 73.344 3.072-1.962667c98.261333-85.845333 240.981333-94.421333 348.074667-26.026666z"
fill="#FFFFFF" p-id="5696"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -19,7 +19,7 @@ open class ReferenceEntity() : RealmObject() {
var renderEntityId: String = "" // 参考的renderEntity的Id var renderEntityId: String = "" // 参考的renderEntity的Id
lateinit var name: String //要素名 lateinit var name: String //要素名
lateinit var table: String //要素表名 lateinit var table: String //要素表名
var code: Int = 0 // 要素编码 var code: String = "0" // 要素编码
var zoomMin: Int = 18 //显示最小级别 var zoomMin: Int = 18 //显示最小级别
var zoomMax: Int = 23 //显示最大级别 var zoomMax: Int = 23 //显示最大级别
var taskId: Int = 0 //任务ID var taskId: Int = 0 //任务ID

View File

@ -73,7 +73,7 @@ enum class DataCodeEnum(var tableName: String, var code: String) {
"2201" "2201"
), ),
OMDB_TUNNEL("隧道", "2202"), OMDB_TUNNEL("隧道", "2202"),
OMDB_RoundAbout( OMDB_ROUNDABOUT(
"环岛", "环岛",
"2204" "2204"
), ),

View File

@ -60,7 +60,7 @@ class LineHandler(context: AppCompatActivity, mapView: NIMapView) : BaseHandler(
.fillColor(context.resources.getColor(R.color.draw_line_red_color)) .fillColor(context.resources.getColor(R.color.draw_line_red_color))
.fillAlpha(0.5f) .fillAlpha(0.5f)
.strokeColor(context.resources.getColor(R.color.draw_line_red_color)) .strokeColor(context.resources.getColor(R.color.draw_line_red_color))
.strokeWidth(8f) .strokeWidth(2f)
.fixed(true).build() .fixed(true).build()
) )
addLayer(layer, NIMapView.LAYER_GROUPS.VECTOR) addLayer(layer, NIMapView.LAYER_GROUPS.VECTOR)