This commit is contained in:
qiji4215
2023-11-24 16:22:11 +08:00
11 changed files with 172 additions and 57 deletions

View File

@@ -358,10 +358,11 @@
"table": "OMDB_TRAFFIC_SIGN",
"code": 3005,
"name": "交通标牌",
"zoomMin": 18,
"zoomMin": 17,
"zoomMax": 20,
"is3D": true,
"catch": true,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
@@ -474,6 +475,12 @@
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine()"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "createSpeedLimitText()"
}
]
},
@@ -490,6 +497,12 @@
"v": "0|",
"klib": "maxSpeed",
"vlib": "限"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "createSpeedLimitText()"
}
]
},
@@ -518,6 +531,12 @@
"v": "3",
"klib": "ref",
"vlib": "上"
},
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "createSpeedLimitText()"
}
]
},
@@ -693,6 +712,7 @@
"name": "车信",
"catch": true,
"isDependOnOtherTable": false,
"checkLinkId": false,
"zoomMin": 15,
"zoomMax": 17,
"transformer": [

View File

@@ -656,36 +656,43 @@ class ImportPreProcess {
// 分别获取两个数组中的数据,取第一个作为主数据,另外两个作为辅助渲染数据
val laneInfoDirectArray = JSONArray(laneinfoGroup[0].toString())
val laneInfoTypeArray = JSONArray(laneinfoGroup[1].toString())
val listResult = mutableListOf<ReferenceEntity>()
val referenceEntity = ReferenceEntity()
referenceEntity.name = "${renderEntity.name}参考方向"
referenceEntity.table = renderEntity.table
referenceEntity.enable = renderEntity.enable
referenceEntity.code = renderEntity.code
referenceEntity.taskId = renderEntity.taskId
referenceEntity.zoomMin = renderEntity.zoomMin
referenceEntity.zoomMax = renderEntity.zoomMax
// 与原数据使用相同的geometry
referenceEntity.geometry = GeometryTools.createGeometry(renderEntity.geometry).toString()
referenceEntity.properties["qi_table"] = renderEntity.table
referenceEntity.properties["symbol"] = "true"
for (i in 0 until laneInfoDirectArray.length()) {
// 根据后续的数据生成辅助表数据
val referenceEntity = ReferenceEntity()
// referenceEntity.renderEntityId = renderEntity.id
referenceEntity.name = "${renderEntity.name}参考方向"
referenceEntity.table = renderEntity.table
referenceEntity.enable = renderEntity.enable
referenceEntity.code = renderEntity.code
referenceEntity.taskId = renderEntity.taskId
referenceEntity.zoomMin = renderEntity.zoomMin
referenceEntity.zoomMax = renderEntity.zoomMax
// 与原数据使用相同的geometry
referenceEntity.geometry = renderEntity.geometry
referenceEntity.properties["qi_table"] = renderEntity.table
referenceEntity.properties["currentDirect"] =
val currentDirect =
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["currentType"] =
val currentType =
laneInfoTypeArray[i].toString()
val type =
if (referenceEntity.properties["currentType"] == "0") "normal" else if (referenceEntity.properties["currentType"] == "1") "extend" else "bus"
referenceEntity.properties["symbol"] =
"assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
referenceEntity.propertiesDb =
DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
renderEntity.referenceEntitys.add(referenceEntity)
Log.e("qj", "车信===插入车信箭头")
if (currentType == "0") "normal" else if (currentType == "1") "extend" else "bus"
val symbol =
"assets:omdb/4601/${type}/1301_${currentDirect}.svg"
referenceEntity.properties["img-src"] = if(referenceEntity.properties["img-src"].isNullOrEmpty()) symbol else "${referenceEntity.properties["img-src"]}|${symbol}"
//listResult.add(referenceEntity)
// if (referenceEntity.properties["currentType"] == "0") "normal" else if (referenceEntity.properties["currentType"] == "1") "extend" else "bus"
// referenceEntity.properties["symbol"] =
// "assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
// Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
// referenceEntity.propertiesDb =
// DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
// renderEntity.referenceEntitys.add(referenceEntity)
// Log.e("qj", "车信===插入车信箭头")
}
referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
renderEntity.referenceEntitys?.add(referenceEntity)
//insertData(listResult)
}
//将主表线转化为单个点,按点要素实现捕捉
if (Geometry.TYPENAME_LINESTRING == renderEntity.wkt?.geometryType) {
@@ -1182,22 +1189,22 @@ class ImportPreProcess {
val accessCharacteristic =
renderEntity.properties["accessCharacteristic"].toString().toInt()
var str = ""
if (accessCharacteristic.and(4) > 0) {
if (accessCharacteristic.and(0b100)>0) {
str += ""
}
if (accessCharacteristic.and(8) > 0) {
if (accessCharacteristic.and(0b1000)>0) {
if (str.isNotEmpty()) {
str += "|"
}
str += ""
str += "HOV"
}
if (accessCharacteristic.and(64) > 0) {
if (accessCharacteristic.and(0b1000000)>0) {
if (str.isNotEmpty()) {
str += "|"
}
str += ""
}
if (accessCharacteristic.and(128) > 0) {
if (accessCharacteristic.and(0b10000000)>0) {
if (str.isNotEmpty()) {
str += "|"
}
@@ -1357,4 +1364,13 @@ class ImportPreProcess {
zLevelReference.properties["qi_table"] = renderEntity.table
return zLevelReference
}
/**
* 创建限速的文字动态数据生成动态symbol
* */
fun createSpeedLimitText(renderEntity: RenderEntity) {
if (renderEntity.properties.containsKey("maxSpeed")) {
renderEntity.properties["text-src"] = "@text:${renderEntity.properties["maxSpeed"]}"
}
}
}

View File

@@ -196,7 +196,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
// 定位到指定位置
niMapController.mMapView.vtmMap.animator()
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
.animateTo(GeoPoint(39.63769191655024, 115.58991663847937))
.animateTo(GeoPoint(40.07290793293324, 116.24617660398738 ))
}
R.id.personal_center_menu_open_all_layer -> {