Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS
Conflicts: app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt app/src/main/java/com/navinfo/omqs/http/taskdownload/TaskDownloadScope.kt vtm
This commit is contained in:
@@ -3,32 +3,44 @@
|
||||
"1012": {
|
||||
"table": "OMDB_CHECKPOINT",
|
||||
"code": 1012,
|
||||
"name": "检查点"
|
||||
"name": "检查点",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23
|
||||
},
|
||||
"2001": {
|
||||
"table": "OMDB_RD_LINK",
|
||||
"code": 2001,
|
||||
"name": "道路线"
|
||||
"name": "道路线",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2002": {
|
||||
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
|
||||
"code": 2002,
|
||||
"name": "道路功能等级"
|
||||
"name": "道路功能等级",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2008": {
|
||||
"table": "OMDB_RD_LINK_KIND",
|
||||
"code": 2008,
|
||||
"name": "道路种别"
|
||||
"name": "道路种别",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2010": {
|
||||
"table": "OMDB_LINK_DIRECT",
|
||||
"code": 2010,
|
||||
"name": "道路方向"
|
||||
"name": "道路方向",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2011": {
|
||||
"table": "OMDB_LINK_NAME",
|
||||
"code": 2011,
|
||||
"name": "道路名",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -42,6 +54,8 @@
|
||||
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
|
||||
"code": 2013,
|
||||
"name": "车道边界类型",
|
||||
"zoomMin": 20,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -54,17 +68,23 @@
|
||||
"2019": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT",
|
||||
"code": 2019,
|
||||
"name": "常规线限速"
|
||||
"name": "常规线限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2020": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_COND",
|
||||
"code": 2020,
|
||||
"name": "条件线限速"
|
||||
"name": "条件线限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2021": {
|
||||
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
|
||||
"code": 2021,
|
||||
"name": "可变线限速"
|
||||
"name": "可变线限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19
|
||||
},
|
||||
"2022": {
|
||||
"table": "OMDB_CON_ACCESS",
|
||||
@@ -89,7 +109,9 @@
|
||||
"2083":{
|
||||
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
|
||||
"code": 2083,
|
||||
"name": "道路边界类型"
|
||||
"name": "道路边界类型",
|
||||
"zoomMin": 20,
|
||||
"zoomMax": 23
|
||||
},
|
||||
"2201":{
|
||||
"table": "OMDB_BRIDGE",
|
||||
@@ -100,6 +122,8 @@
|
||||
"table": "OMDB_TUNNEL",
|
||||
"code": 2202,
|
||||
"name": "隧道",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -113,6 +137,8 @@
|
||||
"table": "OMDB_INTERSECTION",
|
||||
"code": 4001,
|
||||
"name": "路口",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -126,6 +152,8 @@
|
||||
"table": "OMDB_SPEEDLIMIT",
|
||||
"code": 4002,
|
||||
"name": "常规点限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "maxSpeed",
|
||||
@@ -145,6 +173,8 @@
|
||||
"table": "OMDB_SPEEDLIMIT_COND",
|
||||
"code": 4003,
|
||||
"name": "条件点限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "maxSpeed",
|
||||
@@ -158,6 +188,8 @@
|
||||
"table": "OMDB_SPEEDLIMIT_VAR",
|
||||
"code": 4004,
|
||||
"name": "可变点限速",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "location",
|
||||
@@ -183,6 +215,8 @@
|
||||
"table": "OMDB_RESTRICTION",
|
||||
"code": 4006,
|
||||
"name": "普通交限",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -220,6 +254,8 @@
|
||||
"table": "OMDB_ELECTRONICEYE",
|
||||
"code": 4010,
|
||||
"name": "电子眼",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
@@ -251,6 +287,8 @@
|
||||
"table": "OMDB_TRAFFICLIGHT",
|
||||
"code": 4022,
|
||||
"name": "交通灯",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
]
|
||||
},
|
||||
@@ -258,24 +296,26 @@
|
||||
"table": "OMDB_LANEINFO",
|
||||
"code": 4601,
|
||||
"name": "车信",
|
||||
"zoomMin": 18,
|
||||
"zoomMax": 19,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateBack()"
|
||||
"vlib": "translateRight(direct=3)"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateRight()"
|
||||
"vlib": "unpackingLaneInfo()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "generateDirectReferenceLine()"
|
||||
"vlib": "generateS2EReferenceLine()"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -283,6 +323,8 @@
|
||||
"table": "OMDB_LANE_LINK_LG",
|
||||
"code": 5001,
|
||||
"name": "车道中心线",
|
||||
"zoomMin": 20,
|
||||
"zoomMax": 23,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
|
||||
@@ -64,6 +64,11 @@ class Constant {
|
||||
|
||||
const val DEBUG = true
|
||||
|
||||
/**
|
||||
* 地图最多缩放级别23
|
||||
*/
|
||||
const val MAX_ZOOM = 23
|
||||
|
||||
/**
|
||||
* 是否自动定位
|
||||
*/
|
||||
|
||||
@@ -115,6 +115,8 @@ class ImportConfig {
|
||||
class TableInfo {
|
||||
val table: String = ""
|
||||
val code: Int = 0
|
||||
val zoomMin: Int = 18
|
||||
val zoomMax: Int = 23
|
||||
val name: String = ""
|
||||
var checked : Boolean = true
|
||||
var transformer: MutableList<Transform> = mutableListOf()
|
||||
|
||||
@@ -123,7 +123,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
* @param omdbZipFile omdb数据抽取生成的Zip文件
|
||||
* @param configFile 对应的配置文件
|
||||
* */
|
||||
suspend fun importOmdbZipFile(omdbZipFile: File): Flow<String> = withContext(Dispatchers.IO) {
|
||||
suspend fun importOmdbZipFile(omdbZipFile: File, taskId: Int): Flow<String> = withContext(Dispatchers.IO) {
|
||||
val unZipFolder = File(omdbZipFile.parentFile, "result")
|
||||
flow {
|
||||
if (unZipFolder.exists()) {
|
||||
@@ -160,6 +160,9 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
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()
|
||||
@@ -167,6 +170,10 @@ class ImportOMDBHelper @AssistedInject constructor(
|
||||
renderEntity.code = map["qi_code"].toString().toInt()
|
||||
renderEntity.name = map["qi_name"].toString()
|
||||
renderEntity.table = map["qi_table"].toString()
|
||||
renderEntity.taskId = taskId
|
||||
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) {
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.oscim.core.GeoPoint
|
||||
class ImportPreProcess {
|
||||
val code2NameMap = Code2NameMap()
|
||||
lateinit var cacheRdLink: Map<String?, RenderEntity>
|
||||
val defaultTranslateDistance = 3.0
|
||||
|
||||
fun checkCircleRoad(renderEntity: RenderEntity): Boolean {
|
||||
val linkInId = renderEntity.properties["linkIn"]
|
||||
@@ -50,9 +51,9 @@ class ImportPreProcess {
|
||||
}
|
||||
if (Geometry.TYPENAME_POINT == geometry?.geometryType) { // angle为与正北方向的顺时针夹角
|
||||
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
|
||||
if (isReverse) {
|
||||
angle += 180
|
||||
}
|
||||
// if (isReverse) {
|
||||
// angle += 180
|
||||
// }
|
||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||
angle=(450-angle)%360
|
||||
radian = Math.toRadians(angle)
|
||||
@@ -65,20 +66,26 @@ class ImportPreProcess {
|
||||
val p2: Coordinate = coordinates.get(coordinates.size - 1)
|
||||
// 计算线段的方向
|
||||
radian = Angle.angle(p1, p2)
|
||||
point = p2
|
||||
point = p1
|
||||
}
|
||||
|
||||
// 计算偏移距离
|
||||
val dx: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.cos(radian)
|
||||
val dy: Double = GeometryTools.convertDistanceToDegree(3.0, geometry?.coordinate?.y!!) * Math.sin(radian)
|
||||
val dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
|
||||
val dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
|
||||
|
||||
// 计算偏移后的点
|
||||
val coord =
|
||||
Coordinate(point.getX() + dy, point.getY() - dx)
|
||||
|
||||
// 将这个点记录在数据中
|
||||
val geometryTranslate: Geometry = GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
|
||||
renderEntity.geometry = geometryTranslate.toString()
|
||||
// 记录偏移后的点位或线数据,如果数据为线时,记录的偏移后数据为倒数第二个点右移后,方向与线的最后两个点平行同向的单位向量
|
||||
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
|
||||
val geometryTranslate: Geometry = GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
|
||||
renderEntity.geometry = geometryTranslate.toString()
|
||||
} else {
|
||||
val coorEnd = Coordinate(coord.x+dx, coord.y+dy)
|
||||
val geometryTranslate: Geometry = GeometryTools.createLineString(arrayOf(coord, coorEnd))
|
||||
renderEntity.geometry = geometryTranslate.toString()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,6 +152,10 @@ class ImportPreProcess {
|
||||
startEndReference.renderEntityId = renderEntity.id
|
||||
startEndReference.name = "${renderEntity.name}参考线"
|
||||
startEndReference.table = renderEntity.table
|
||||
startEndReference.zoomMin = renderEntity.zoomMin
|
||||
startEndReference.zoomMax = renderEntity.zoomMax
|
||||
startEndReference.taskId = renderEntity.taskId
|
||||
|
||||
// 起终点坐标组成的线
|
||||
startEndReference.geometry = GeometryTools.createLineString(arrayOf<Coordinate>(pointStart, pointEnd)).toString()
|
||||
startEndReference.properties["qi_table"] = renderEntity.table
|
||||
@@ -163,6 +174,10 @@ class ImportPreProcess {
|
||||
startReference.renderEntityId = renderEntity.id
|
||||
startReference.name = "${renderEntity.name}参考线"
|
||||
startReference.table = renderEntity.table
|
||||
startReference.zoomMin = renderEntity.zoomMin
|
||||
startReference.zoomMax = renderEntity.zoomMax
|
||||
startReference.taskId = renderEntity.taskId
|
||||
|
||||
// 起点坐标
|
||||
startReference.geometry = GeometryTools.createGeometry(GeoPoint(pointStart.y,pointStart.x)).toString()
|
||||
startReference.properties["qi_table"] = renderEntity.table
|
||||
@@ -173,6 +188,10 @@ class ImportPreProcess {
|
||||
endReference.renderEntityId = renderEntity.id
|
||||
endReference.name = "${renderEntity.name}参考线"
|
||||
endReference.table = renderEntity.table
|
||||
endReference.zoomMin = renderEntity.zoomMin
|
||||
endReference.zoomMax = renderEntity.zoomMax
|
||||
endReference.taskId = renderEntity.taskId
|
||||
|
||||
// 终点坐标
|
||||
endReference.geometry = GeometryTools.createGeometry(GeoPoint(pointEnd.y,pointEnd.x)).toString()
|
||||
endReference.properties["qi_table"] = renderEntity.table
|
||||
@@ -226,6 +245,9 @@ class ImportPreProcess {
|
||||
angleReference.renderEntityId = renderEntity.id
|
||||
angleReference.name = "${renderEntity.name}参考方向"
|
||||
angleReference.table = renderEntity.table
|
||||
angleReference.zoomMin = renderEntity.zoomMin
|
||||
angleReference.zoomMax = renderEntity.zoomMax
|
||||
angleReference.taskId = renderEntity.taskId
|
||||
// 与原有方向指向平行的线
|
||||
angleReference.geometry = GeometryTools.createLineString(arrayOf(point, coorEnd)).toString()
|
||||
angleReference.properties["qi_table"] = renderEntity.table
|
||||
@@ -282,7 +304,40 @@ class ImportPreProcess {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析车信数据二级属性
|
||||
* */
|
||||
fun unpackingLaneInfo(renderEntity: RenderEntity) {
|
||||
if (renderEntity.code == 4601) {
|
||||
if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty()&&renderEntity.properties["laneinfoGroup"]!="null") {
|
||||
// 解析laneinfoGroup,将数组中的属性放会properties
|
||||
val laneinfoGroup = JSONArray(renderEntity.properties["laneinfoGroup"].toString().replace("{", "[").replace("}", "]"))
|
||||
// 分别获取两个数组中的数据,取第一个作为主数据,另外两个作为辅助渲染数据
|
||||
val laneInfoDirectArray = JSONArray(laneinfoGroup[0].toString())
|
||||
val laneInfoTypeArray = JSONArray(laneinfoGroup[1].toString())
|
||||
|
||||
for (i in 0 until laneInfoDirectArray.length()) {
|
||||
// 根据后续的数据生成辅助表数据
|
||||
val referenceEntity = ReferenceEntity()
|
||||
referenceEntity.renderEntityId = renderEntity.id
|
||||
referenceEntity.name = "${renderEntity.name}参考方向"
|
||||
referenceEntity.table = renderEntity.table
|
||||
referenceEntity.zoomMin = renderEntity.zoomMin
|
||||
referenceEntity.zoomMax = renderEntity.zoomMax
|
||||
referenceEntity.taskId = renderEntity.taskId
|
||||
|
||||
// 与原数据使用相同的geometry
|
||||
referenceEntity.geometry = renderEntity.geometry.toString()
|
||||
referenceEntity.properties["qi_table"] = renderEntity.table
|
||||
referenceEntity.properties["currentDirect"] = laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
|
||||
referenceEntity.properties["currentType"] = laneInfoTypeArray[i].toString().split(",").distinct().joinToString("_")
|
||||
referenceEntity.properties["symbol"] = "assets:omdb/4601/bus/1301_"+referenceEntity.properties["currentDirect"]+".svg"
|
||||
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
|
||||
Realm.getDefaultInstance().insert(referenceEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成默认道路名数据
|
||||
@@ -339,6 +394,9 @@ class ImportPreProcess {
|
||||
angleReference.geometry = renderEntity.geometry
|
||||
angleReference.properties["qi_table"] = renderEntity.table
|
||||
angleReference.properties["width"] = "3"
|
||||
angleReference.zoomMin = renderEntity.zoomMin
|
||||
angleReference.zoomMax = renderEntity.zoomMax
|
||||
angleReference.taskId = renderEntity.taskId
|
||||
Realm.getDefaultInstance().insert(angleReference)
|
||||
}
|
||||
|
||||
@@ -356,6 +414,9 @@ class ImportPreProcess {
|
||||
intersectionReference.renderEntityId = renderEntity.id
|
||||
intersectionReference.name = "${renderEntity.name}参考点"
|
||||
intersectionReference.table = renderEntity.table
|
||||
intersectionReference.zoomMin = renderEntity.zoomMin
|
||||
intersectionReference.zoomMax = renderEntity.zoomMax
|
||||
intersectionReference.taskId = renderEntity.taskId
|
||||
// 与原有方向指向平行的线
|
||||
intersectionReference.geometry = GeometryTools.createGeometry(nodeJSONObject["geometry"].toString()).toString()
|
||||
intersectionReference.properties["qi_table"] = renderEntity.table
|
||||
|
||||
@@ -73,7 +73,7 @@ class TaskDownloadScope(
|
||||
downloadJob = launch() {
|
||||
FileManager.checkOMDBFileInfo(taskBean)
|
||||
if (taskBean.status == FileDownloadStatus.IMPORT) {
|
||||
importData()
|
||||
importData(taskId = taskBean.id)
|
||||
} else {
|
||||
download()
|
||||
}
|
||||
@@ -123,7 +123,7 @@ class TaskDownloadScope(
|
||||
/**
|
||||
* 导入数据
|
||||
*/
|
||||
private suspend fun importData(file: File? = null) {
|
||||
private suspend fun importData(file: File? = null, taskId: Int?=0) {
|
||||
try {
|
||||
Log.e("jingo", "importData SSS")
|
||||
change(FileDownloadStatus.IMPORTING)
|
||||
@@ -134,16 +134,17 @@ class TaskDownloadScope(
|
||||
downloadManager.context,
|
||||
fileNew
|
||||
)
|
||||
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile).collect {
|
||||
Log.e("jingo", "数据安装 $it")
|
||||
if (it == "finish") {
|
||||
withContext(Dispatchers.Main) {
|
||||
downloadManager.mapController.mMapView.updateMap(true)
|
||||
if (taskId != null) {
|
||||
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile,taskId).collect {
|
||||
Log.e("jingo", "数据安装 $it")
|
||||
if (it == "finish") {
|
||||
change(FileDownloadStatus.DONE)
|
||||
withContext(Dispatchers.Main) {
|
||||
downloadManager.mapController.mMapView.updateMap(true)
|
||||
}
|
||||
} else {
|
||||
change(FileDownloadStatus.IMPORTING, it)
|
||||
}
|
||||
change(FileDownloadStatus.DONE)
|
||||
|
||||
} else {
|
||||
change(FileDownloadStatus.IMPORTING, it)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
@@ -182,7 +183,7 @@ class TaskDownloadScope(
|
||||
startPosition = 0
|
||||
}
|
||||
if (fileTemp.length() > 0 && taskBean.fileSize > 0 && fileTemp.length() == taskBean.fileSize) {
|
||||
importData(fileTemp)
|
||||
importData(fileTemp,taskBean.id)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -223,7 +224,7 @@ class TaskDownloadScope(
|
||||
randomAccessFile?.close()
|
||||
inputStream = null
|
||||
randomAccessFile = null
|
||||
importData()
|
||||
importData(taskId = taskBean.id)
|
||||
} else {
|
||||
change(FileDownloadStatus.PAUSE)
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.NIMapOptions
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
@@ -167,7 +168,7 @@ class MainActivity : BaseActivity() {
|
||||
viewModel.speakMode = SpeakMode(this)
|
||||
// 在mapController初始化前获取当前OMDB图层显隐
|
||||
viewModel.refreshOMDBLayer(LayerConfigUtils.getLayerConfigList())
|
||||
mapController.mMapView.vtmMap.viewport().maxZoomLevel = 25
|
||||
mapController.mMapView.vtmMap.viewport().maxZoomLevel = Constant.MAX_ZOOM
|
||||
//关联生命周期
|
||||
binding.lifecycleOwner = this
|
||||
//给xml转递对象
|
||||
|
||||
@@ -123,10 +123,10 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
|
||||
}
|
||||
R.id.personal_center_menu_test -> {
|
||||
viewModel.readRealmData()
|
||||
//108.90107116103331 34.29568928574205
|
||||
//116.25017070328308 40.061730653134696
|
||||
// 定位到指定位置
|
||||
niMapController.mMapView.vtmMap.animator()
|
||||
.animateTo(GeoPoint( 34.29568928574205, 108.90107116103331))
|
||||
.animateTo(GeoPoint( 40.061730653134696, 116.25017070328308))
|
||||
}
|
||||
// R.id.personal_center_menu_task_list -> {
|
||||
// findNavController().navigate(R.id.TaskManagerFragment)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.navinfo.omqs.ui.fragment.personalcenter
|
||||
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
@@ -16,17 +17,13 @@ import com.navinfo.omqs.bean.ScRootCauseAnalysisBean
|
||||
import com.navinfo.omqs.db.ImportOMDBHelper
|
||||
import com.navinfo.omqs.db.RealmOperateHelper
|
||||
import com.navinfo.omqs.db.RoomAppDatabase
|
||||
import com.navinfo.omqs.tools.MetadataUtils
|
||||
import com.navinfo.omqs.tools.MetadataUtils.Companion.ScProblemTypeTitle
|
||||
import com.navinfo.omqs.tools.MetadataUtils.Companion.ScRootCauseAnalysisTitle
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.apache.commons.io.input.BOMInputStream
|
||||
import java.io.*
|
||||
import java.nio.charset.Charset
|
||||
import java.text.Normalizer
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -43,6 +40,7 @@ class PersonalCenterViewModel @Inject constructor(
|
||||
/**
|
||||
* 导入OMDB数据
|
||||
* */
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
suspend fun obtainOMDBZipData(importOMDBHelper: ImportOMDBHelper) {
|
||||
Log.d("OMQSApplication", "开始生成数据")
|
||||
// Realm.getDefaultInstance().beginTransaction()
|
||||
@@ -164,11 +162,13 @@ class PersonalCenterViewModel @Inject constructor(
|
||||
/**
|
||||
* 导入OMDB数据
|
||||
* */
|
||||
fun importOMDBData(importOMDBHelper: ImportOMDBHelper) {
|
||||
fun importOMDBData(importOMDBHelper: ImportOMDBHelper,taskId:Int?=0) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
Log.d("OMQSApplication", "开始导入数据")
|
||||
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile).collect {
|
||||
Log.d("importOMDBData", it)
|
||||
if (taskId != null) {
|
||||
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile, taskId).collect {
|
||||
Log.d("importOMDBData", it)
|
||||
}
|
||||
}
|
||||
Log.d("OMQSApplication", "导入数据完成")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user