Conflicts:
	vtm
This commit is contained in:
qiji4215
2023-08-23 14:11:40 +08:00
8 changed files with 62 additions and 9 deletions

View File

@@ -160,6 +160,39 @@
"zoomMax": 20,
"transformer2Code": ""
},
"3005":{
"table": "OMDB_TRAFFIC_SIGN",
"code": 3005,
"name": "交通标牌",
"is3D": true,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationTrafficSignHeight()"
},{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine('', 0.2)"
}
]
},
"3006":{
"table": "OMDB_POLE",
"code": 3006,
"name": "杆状物",
"is3D": true,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationPoleHeight()"
}
]
},
"3012":{
"table": "OMDB_FILL_AREA",
"code": 3012,

View File

@@ -125,6 +125,7 @@ class TableInfo {
val name: String = ""
var checked : Boolean = true
var transformer: MutableList<Transform> = mutableListOf()
var is3D : Boolean = false // 是否支持3D默认情况下都不支持3D在数据导入阶段会自动抹去Z轴高程信息
}
class Transform {

View File

@@ -12,6 +12,7 @@ import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.collect.library.enums.DataCodeEnum
import com.navinfo.collect.library.utils.GeometryTools
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.db.deep.LinkList
@@ -23,6 +24,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.withContext
import org.locationtech.jts.geom.Geometry
import org.spatialite.database.SQLiteDatabase
import java.io.File
import javax.inject.Inject
@@ -173,8 +175,6 @@ class ImportOMDBHelper @AssistedInject constructor(
.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
@@ -189,8 +189,26 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
// 其他数据插入到Properties中
renderEntity.geometry = map["geometry"].toString()
// 其他数据插入到Properties中
if (!currentConfig.is3D) { // 如果是非3d要素则自动将Z轴坐标全部置为0
val coordinates = renderEntity.wkt?.coordinates?.map {
coordinate -> coordinate.z = 0.0
coordinate
}?.toTypedArray()
var newGeometry: Geometry? = null
if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POINT) {
newGeometry = GeometryTools.createPoint(coordinates!![0].x, coordinates!![0].y)
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_LINESTRING) {
newGeometry = GeometryTools.createLineString(coordinates)
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POLYGON) {
newGeometry = GeometryTools.createLineString(coordinates)
}
if (newGeometry!=null) {
renderEntity.geometry = newGeometry.toString()
}
}
for ((key, value) in map) {
when (value) {
is String -> renderEntity.properties.put(key, value)