From 015733451b8ae68fd3c3cc8da8c7fcf49065c965 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Wed, 16 Aug 2023 11:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8D=89=E5=9B=BE=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1id=E5=8F=8A=E9=87=8D=E6=9E=84=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=AF=BB=E5=8F=96=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/db/ImportOMDBHelper.kt | 2 +- .../com/navinfo/omqs/db/ImportPreProcess.kt | 2 - .../com/navinfo/omqs/db/RealmOperateHelper.kt | 105 +++++++++++------- .../omqs/ui/activity/map/MainViewModel.kt | 33 +++--- .../omqs/ui/activity/map/SignAdapter.kt | 2 +- .../omqs/ui/fragment/note/NoteViewModel.kt | 2 + .../personalcenter/PersonalCenterFragment.kt | 15 +++ .../signMoreInfo/SignMoreInfoFragment.kt | 2 +- .../ui/fragment/tasklist/TaskViewModel.kt | 4 +- .../com/navinfo/omqs/ui/widget/SignUtil.kt | 2 +- .../main/res/menu/personal_center_menu.xml | 28 ++--- .../src/main/assets/editormarker.xml | 4 +- .../src/main/assets/omdb/icon_2201_3_2.svg | 57 +--------- .../src/main/assets/omdb/icon_2204_0.svg | 2 +- .../collect/library/data/entity/NoteBean.kt | 1 + .../library/{enum => enums}/DataCodeEnum.kt | 2 +- .../collect/library/enums/DataLayerEnum.kt | 12 ++ .../map/source/OMDBReferenceDataSource.java | 13 ++- .../map/source/OMDBTileDataSource.java | 13 ++- .../collect/library/utils/MapParamUtils.java | 26 +++++ .../library/utils/RealmDBParamUtils.java | 13 --- 21 files changed, 180 insertions(+), 160 deletions(-) rename collect-library/src/main/java/com/navinfo/collect/library/{enum => enums}/DataCodeEnum.kt (98%) create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/enums/DataLayerEnum.kt create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/utils/MapParamUtils.java delete mode 100644 collect-library/src/main/java/com/navinfo/collect/library/utils/RealmDBParamUtils.java diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt index f652b11e..589ab0c5 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -11,7 +11,7 @@ import com.google.gson.Gson 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.enum.DataCodeEnum +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.omqs.Constant import com.navinfo.omqs.bean.ImportConfig import com.navinfo.omqs.db.deep.LinkList diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt index 89ce9a4c..2e9d198d 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -3,7 +3,6 @@ package com.navinfo.omqs.db import android.util.Log import com.navinfo.collect.library.data.entity.ReferenceEntity import com.navinfo.collect.library.data.entity.RenderEntity -import com.navinfo.collect.library.enum.DataCodeEnum import com.navinfo.collect.library.utils.GeometryTools import io.realm.Realm import org.json.JSONArray @@ -13,7 +12,6 @@ import org.locationtech.jts.geom.Coordinate import org.locationtech.jts.geom.Geometry import org.locationtech.jts.io.WKTWriter import org.oscim.core.GeoPoint -import kotlin.math.min class ImportPreProcess { diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index e6fa44bb..dd015508 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -7,14 +7,14 @@ import com.navinfo.collect.library.data.entity.HadLinkDvoBean import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.RenderEntity.Companion.LinkTable +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt -import com.navinfo.collect.library.utils.RealmDBParamUtils -import com.navinfo.omqs.bean.QRCodeBean +import com.navinfo.collect.library.utils.MapParamUtils import io.realm.Realm -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext +import io.realm.RealmModel +import io.realm.RealmQuery import org.locationtech.jts.geom.* import org.locationtech.jts.operation.buffer.BufferOp import org.oscim.core.GeoPoint @@ -26,6 +26,8 @@ class RealmOperateHelper() { @Inject lateinit var niMapController: NIMapController + private var isUpdate: Boolean = false + /** * 根据当前点位查询匹配的Link数据 * @param point 点位经纬度信息 @@ -59,12 +61,12 @@ class RealmOperateHelper() { val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) // 查询realm中对应tile号的数据 - val realm = Realm.getDefaultInstance() - val realmList = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RD_LINK") - .and() - .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) - .findAll() + val realm = getRealmDefaultInstance() + val realmList = + getRealmTools(RenderEntity::class.java,false).and().equalTo("table", "OMDB_RD_LINK") + .and() + .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") + .findAll() // 将获取到的数据和查询的polygon做相交,只返回相交的数据 val dataList = realm.copyFromRealm(realmList) val queryResult = dataList?.stream()?.filter { @@ -122,11 +124,11 @@ class RealmOperateHelper() { val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) // 查询realm中对应tile号的数据 - val realm = Realm.getDefaultInstance() - val realmList = realm.where(RenderEntity::class.java) + val realm = getRealmDefaultInstance() + val realmList = getRealmTools(RenderEntity::class.java, true).and() .equalTo("table", table) .and() - .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) + .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .findAll() // 将获取到的数据和查询的polygon做相交,只返回相交的数据 val dataList = realm.copyFromRealm(realmList) @@ -163,10 +165,8 @@ class RealmOperateHelper() { bufferType ) - val realm = Realm.getDefaultInstance() - val realmList = realm.where(HadLinkDvoBean::class.java) - .equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) - .findAll() + val realm = getRealmDefaultInstance() + val realmList = getRealmTools(HadLinkDvoBean::class.java, false).findAll() var linkBean: HadLinkDvoBean? = null var nearLast: Double = 99999.99 for (link in realmList) { @@ -185,12 +185,10 @@ class RealmOperateHelper() { suspend fun queryLink(linkPid: String): RenderEntity? { var link: RenderEntity? = null - val realm = Realm.getDefaultInstance() - val realmR = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RD_LINK") - .and() - .equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) - .findFirst() + val realm = getRealmDefaultInstance() + val realmR = + getRealmTools(RenderEntity::class.java, true).and().equalTo("table", "OMDB_RD_LINK") + .and().equalTo("properties['${LinkTable.linkPid}']", linkPid).findFirst() if (realmR != null) { link = realm.copyFromRealm(realmR) } @@ -203,12 +201,9 @@ class RealmOperateHelper() { * */ suspend fun queryQcRecordBean(markId: String): QsRecordBean? { var qsRecordBean: QsRecordBean? = null - val realm = Realm.getDefaultInstance() - val realmR = realm.where(QsRecordBean::class.java) - .equalTo("table", "QsRecordBean") - .and() - .equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) - .findFirst() + val realm = getRealmDefaultInstance() + val realmR = getRealmTools(QsRecordBean::class.java, false).and() + .equalTo("table", "QsRecordBean").and().equalTo("id", markId).findFirst() if (realmR != null) { qsRecordBean = realm.copyFromRealm(realmR) } @@ -218,11 +213,10 @@ class RealmOperateHelper() { suspend fun queryLinkToMutableRenderEntityList(linkPid: String): MutableList? { val resultList = mutableListOf() - val realm = Realm.getDefaultInstance() + val realm = getRealmDefaultInstance() - val realmR = realm.where(RenderEntity::class.java) - .equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) - .findAll() + val realmR = getRealmTools(RenderEntity::class.java, true).and() + .equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll() val dataList = realm.copyFromRealm(realmR) @@ -261,12 +255,12 @@ class RealmOperateHelper() { val xEnd = tileXSet.stream().max(Comparator.naturalOrder()).orElse(null) val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null) val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null) - val realm = Realm.getDefaultInstance() + val realm = getRealmDefaultInstance() // 查询realm中对应tile号的数据 - val realmList = realm.where(RenderEntity::class.java) - .notEqualTo("table", "OMDB_RD_LINK") + val realmList = getRealmTools(RenderEntity::class.java, false).and() + .notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.tableName) .and() - .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) + .rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd") .findAll() // 将获取到的数据和查询的polygon做相交,只返回相交的数据 val queryResult = realmList?.stream()?.filter { @@ -292,11 +286,11 @@ class RealmOperateHelper() { * */ suspend fun queryLinkByLinkPid(linkPid: String): MutableList { val result = mutableListOf() - val realm = Realm.getDefaultInstance() - val realmList = realm.where(RenderEntity::class.java) - .notEqualTo("table", "OMDB_RD_LINK") + val realm = getRealmDefaultInstance() + val realmList = getRealmTools(RenderEntity::class.java, false).and() + .notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.tableName) .and() - .equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2) + .equalTo("properties['${LinkTable.linkPid}']", linkPid).and() .findAll() result.addAll(realm.copyFromRealm(realmList)) return result @@ -370,6 +364,35 @@ class RealmOperateHelper() { } + fun getRealmTools(clazz: Class, enableSql: Boolean): RealmQuery { + return if (MapParamUtils.getDataLayerEnum() != null) { + + var sql = "taskId=${MapParamUtils.getTaskId()}" + + if (enableSql) { + sql = + " enable${MapParamUtils.getDataLayerEnum().sql} and taskId=${MapParamUtils.getTaskId()}" + } + + getRealmDefaultInstance().where(clazz).rawPredicate(sql) + + } else { + getRealmDefaultInstance().where(clazz) + .rawPredicate(" taskId=${MapParamUtils.getTaskId()}") + } + } + + fun getRealmDefaultInstance(): Realm { + if(isUpdate){ + Realm.getDefaultInstance().refresh() + isUpdate = false; + } + return Realm.getDefaultInstance() + } + + fun updateRealmDefaultInstance(){ + isUpdate = true + } } enum class BUFFER_TYPE(val index: Int) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 0bde4c92..0c059988 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -24,14 +24,14 @@ import androidx.navigation.findNavController import com.blankj.utilcode.util.ToastUtils import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.* -import com.navinfo.collect.library.enum.DataCodeEnum +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.collect.library.garminvirbxe.HostBean import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.OnGeoPointClickListener import com.navinfo.collect.library.map.handler.* import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt -import com.navinfo.collect.library.utils.RealmDBParamUtils +import com.navinfo.collect.library.utils.MapParamUtils import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.bean.ImportConfig @@ -291,7 +291,7 @@ class MainViewModel @Inject constructor( initNILocationData() } sharedPreferences.registerOnSharedPreferenceChangeListener(this) - RealmDBParamUtils.setTaskId(sharedPreferences.getInt(Constant.SELECT_TASK_ID, -1)) + MapParamUtils.setTaskId(sharedPreferences.getInt(Constant.SELECT_TASK_ID, -1)) socketServer = SocketServer(mapController, traceDataBase, sharedPreferences) } @@ -324,10 +324,10 @@ class MainViewModel @Inject constructor( private suspend fun initQsRecordData() { if (currentTaskBean != null) { var list = mutableListOf() - val realm = Realm.getDefaultInstance() + val realm = realmOperateHelper.getRealmDefaultInstance() realm.executeTransaction { val objects = - realm.where().equalTo("taskId", currentTaskBean!!.id).findAll() + realmOperateHelper.getRealmTools(QsRecordBean::class.java,false).findAll() list = realm.copyFromRealm(objects) } mapController.markerHandle.removeAllQsMarker() @@ -342,9 +342,9 @@ class MainViewModel @Inject constructor( */ private suspend fun initNoteData() { var list = mutableListOf() - val realm = Realm.getDefaultInstance() + val realm = realmOperateHelper.getRealmDefaultInstance() realm.executeTransaction { - val objects = realm.where().findAll() + val objects = realmOperateHelper.getRealmTools(NoteBean::class.java,false).findAll() list = realm.copyFromRealm(objects) } @@ -548,15 +548,16 @@ class MainViewModel @Inject constructor( } - val realm = Realm.getDefaultInstance() - val entity = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RESTRICTION").and().equalTo( + 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() if (entity != null) { val outLink = entity.properties["linkOut"] - val linkOutEntity = realm.where(RenderEntity::class.java) - .equalTo("table", "OMDB_RD_LINK").and().equalTo( + 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() @@ -1112,14 +1113,6 @@ class MainViewModel @Inject constructor( } fun click2Dor3D() { - viewModelScope.launch(Dispatchers.IO) { - Log.e( - "qj", - "${ - Realm.getDefaultInstance().where(RenderEntity::class.java).findAll().size - }==安装数量" - ) - } } /** diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index 6bc84eae..1f16516f 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView -import com.navinfo.collect.library.enum.DataCodeEnum +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.AdapterSignBinding diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/note/NoteViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/note/NoteViewModel.kt index d5fd927c..5a5d7d84 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/note/NoteViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/note/NoteViewModel.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.navinfo.collect.library.data.entity.NoteBean import com.navinfo.collect.library.map.NIMapController +import com.navinfo.collect.library.utils.MapParamUtils import com.navinfo.omqs.ui.dialog.FirstDialog import dagger.hilt.android.lifecycle.HiltViewModel import io.realm.Realm @@ -108,6 +109,7 @@ class NoteViewModel @Inject constructor( noteBean.id = mNoteBean!!.id noteBean.description = noteBeanDescription } + noteBean.taskId = MapParamUtils.getTaskId() mNoteBean = noteBean val realm = Realm.getDefaultInstance() realm.executeTransaction { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt index a5859a3d..96be2aed 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt @@ -3,11 +3,13 @@ package com.navinfo.omqs.ui.fragment.personalcenter import android.Manifest import android.content.Intent import android.net.Uri +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import com.blankj.utilcode.util.ToastUtils @@ -15,7 +17,9 @@ import com.blankj.utilcode.util.UriUtils import com.github.k1rakishou.fsaf.FileChooser import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks import com.github.k1rakishou.fsaf.callback.FileChooserCallback +import com.navinfo.collect.library.enums.DataLayerEnum import com.navinfo.collect.library.map.NIMapController +import com.navinfo.collect.library.utils.MapParamUtils import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.databinding.FragmentPersonalCenterBinding @@ -67,6 +71,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit? override fun onCancel(reason: String) { } + @RequiresApi(Build.VERSION_CODES.N) override fun onResult(uri: Uri) { val file = UriUtils.uri2File(uri) // 开始导入数据 @@ -126,6 +131,16 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit? // .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 )) .animateTo(GeoPoint( 39.91975038055932,116.35447089476969 )) } + R.id.personal_center_menu_open_all_layer -> { + MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS) + niMapController.layerManagerHandler.updateOMDBVectorTileLayer() + viewModel.realmOperateHelper.updateRealmDefaultInstance() + } + R.id.personal_center_menu_close_hide_layer -> { + MapParamUtils.setDataLayerEnum(DataLayerEnum.ONLY_ENABLE_LAYERS) + niMapController.layerManagerHandler.updateOMDBVectorTileLayer() + viewModel.realmOperateHelper.updateRealmDefaultInstance() + } // R.id.personal_center_menu_task_list -> { // findNavController().navigate(R.id.TaskManagerFragment) // } diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt index df95a94a..d683faa9 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt @@ -8,7 +8,7 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import com.navinfo.collect.library.data.entity.RenderEntity -import com.navinfo.collect.library.enum.DataCodeEnum +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.FragmentSignInfoBinding diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt index 7e9e47ec..736b213e 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/tasklist/TaskViewModel.kt @@ -16,7 +16,7 @@ import com.navinfo.collect.library.data.entity.TaskBean import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.OnGeoPointClickListener import com.navinfo.collect.library.utils.GeometryTools -import com.navinfo.collect.library.utils.RealmDBParamUtils +import com.navinfo.collect.library.utils.MapParamUtils import com.navinfo.omqs.Constant import com.navinfo.omqs.db.RealmOperateHelper import com.navinfo.omqs.http.NetworkService @@ -142,7 +142,7 @@ class TaskViewModel @Inject constructor( liveDataTaskLinks.value = taskBean.hadLinkDvoList showTaskLinks(taskBean) - RealmDBParamUtils.setTaskId(taskBean.id) + MapParamUtils.setTaskId(taskBean.id) mapController.layerManagerHandler.updateOMDBVectorTileLayer() mapController.mMapView.updateMap(true) diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt index 9d1facf1..07a73684 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt @@ -2,7 +2,7 @@ package com.navinfo.omqs.ui.widget import android.util.Log import com.navinfo.collect.library.data.entity.RenderEntity -import com.navinfo.collect.library.enum.DataCodeEnum +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.RoadNameBean import com.navinfo.omqs.bean.SignBean diff --git a/app/src/main/res/menu/personal_center_menu.xml b/app/src/main/res/menu/personal_center_menu.xml index 99d24333..5204c596 100644 --- a/app/src/main/res/menu/personal_center_menu.xml +++ b/app/src/main/res/menu/personal_center_menu.xml @@ -1,7 +1,8 @@ + tools:showIn="navigation_view" + tools:context=".ui.fragment.personalcenter.PersonalCenterFragment"> - - - - - - - - - - - - - + + + + + src="assets:omdb/icon_2204_0.svg" symbol-height="56" symbol-width="56"> + src="assets:omdb/icon_2204_0.svg" symbol-height="56" symbol-width="56"> diff --git a/collect-library/src/main/assets/omdb/icon_2201_3_2.svg b/collect-library/src/main/assets/omdb/icon_2201_3_2.svg index 0b103e24..8660484b 100644 --- a/collect-library/src/main/assets/omdb/icon_2201_3_2.svg +++ b/collect-library/src/main/assets/omdb/icon_2201_3_2.svg @@ -1,56 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_2204_0.svg b/collect-library/src/main/assets/omdb/icon_2204_0.svg index e31dd649..5f413949 100644 --- a/collect-library/src/main/assets/omdb/icon_2204_0.svg +++ b/collect-library/src/main/assets/omdb/icon_2204_0.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/NoteBean.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/NoteBean.kt index 1d9959b1..2ac278bd 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/NoteBean.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/NoteBean.kt @@ -9,5 +9,6 @@ open class NoteBean @JvmOverloads constructor( var id: String = "", var guideGeometry: String = "", var description: String = "", + var taskId :Int = 0, var list: RealmList = RealmList(), ) : RealmObject() \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt similarity index 98% rename from collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt rename to collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt index e9f72c8e..22dc5013 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt @@ -1,4 +1,4 @@ -package com.navinfo.collect.library.enum +package com.navinfo.collect.library.enums /* * 要素枚举定义 diff --git a/collect-library/src/main/java/com/navinfo/collect/library/enums/DataLayerEnum.kt b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataLayerEnum.kt new file mode 100644 index 00000000..d85e2d24 --- /dev/null +++ b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataLayerEnum.kt @@ -0,0 +1,12 @@ +package com.navinfo.collect.library.enums + +/* +* 图层枚举定义 +* */ +enum class DataLayerEnum(var tableName: String, var sql: String) { + SHOW_ALL_LAYERS("显示所有图层", ">=0"), ONLY_ENABLE_LAYERS( + "仅显示可用图层", + ">=1" + ) +} + diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDataSource.java index c1cd5783..b9ba60de 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDataSource.java @@ -7,7 +7,7 @@ import androidx.annotation.RequiresApi; import com.navinfo.collect.library.data.entity.ReferenceEntity; import com.navinfo.collect.library.system.Constant; -import com.navinfo.collect.library.utils.RealmDBParamUtils; +import com.navinfo.collect.library.utils.MapParamUtils; import org.oscim.layers.tile.MapTile; import org.oscim.tiling.ITileDataSink; @@ -43,8 +43,17 @@ public class OMDBReferenceDataSource implements ITileDataSource { Realm.getDefaultInstance().refresh(); isUpdate = false; } + + String sql = "taskId="+ MapParamUtils.getTaskId() +" and tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd + ""; + + if(MapParamUtils.getDataLayerEnum()!=null){ + sql += " and enable" + MapParamUtils.getDataLayerEnum().getSql(); + }else{ + sql += " and 1=1"; + } + RealmQuery realmQuery = Realm.getDefaultInstance().where(ReferenceEntity.class) - .rawPredicate("taskId="+RealmDBParamUtils.getTaskId() +" and tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd + " and enable>=1" ); + .rawPredicate(sql); // 筛选不显示的数据 if (Constant.HAD_LAYER_INVISIABLE_ARRAY != null && Constant.HAD_LAYER_INVISIABLE_ARRAY.length > 0) { realmQuery.beginGroup(); diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java index 53bcf015..63d51383 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java @@ -9,7 +9,7 @@ import com.navinfo.collect.library.data.RealmUtils; import com.navinfo.collect.library.data.entity.GeometryFeatureEntity; import com.navinfo.collect.library.data.entity.RenderEntity; import com.navinfo.collect.library.system.Constant; -import com.navinfo.collect.library.utils.RealmDBParamUtils; +import com.navinfo.collect.library.utils.MapParamUtils; import org.oscim.layers.tile.MapTile; import org.oscim.tiling.ITileDataSink; @@ -44,7 +44,16 @@ public class OMDBTileDataSource implements ITileDataSource { Realm.getDefaultInstance().refresh(); isUpdate = false; } - RealmQuery realmQuery = Realm.getDefaultInstance().where(RenderEntity.class).rawPredicate("taskId ="+RealmDBParamUtils.getTaskId() +" and tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd + " and enable>=1"); + + String sql = "taskId="+ MapParamUtils.getTaskId() +" and tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd + ""; + + if(MapParamUtils.getDataLayerEnum()!=null){ + sql += " and enable" + MapParamUtils.getDataLayerEnum().getSql(); + }else{ + sql += " and 1=1"; + } + + RealmQuery realmQuery = Realm.getDefaultInstance().where(RenderEntity.class).rawPredicate(sql); // 筛选不显示的数据 if (Constant.HAD_LAYER_INVISIABLE_ARRAY != null && Constant.HAD_LAYER_INVISIABLE_ARRAY.length > 0) { realmQuery.beginGroup(); diff --git a/collect-library/src/main/java/com/navinfo/collect/library/utils/MapParamUtils.java b/collect-library/src/main/java/com/navinfo/collect/library/utils/MapParamUtils.java new file mode 100644 index 00000000..79e7675e --- /dev/null +++ b/collect-library/src/main/java/com/navinfo/collect/library/utils/MapParamUtils.java @@ -0,0 +1,26 @@ +package com.navinfo.collect.library.utils; + +import com.navinfo.collect.library.enums.DataLayerEnum; + +public class MapParamUtils { + + private static int mtaskId = -1; + + private static DataLayerEnum dataLayerEnum = DataLayerEnum.ONLY_ENABLE_LAYERS; + + public static int getTaskId() { + return mtaskId; + } + + public static void setTaskId(int taskId) { + mtaskId = taskId; + } + + public static DataLayerEnum getDataLayerEnum() { + return dataLayerEnum; + } + + public static void setDataLayerEnum(DataLayerEnum dataLayerEnum) { + MapParamUtils.dataLayerEnum = dataLayerEnum; + } +} diff --git a/collect-library/src/main/java/com/navinfo/collect/library/utils/RealmDBParamUtils.java b/collect-library/src/main/java/com/navinfo/collect/library/utils/RealmDBParamUtils.java deleted file mode 100644 index d2b6a904..00000000 --- a/collect-library/src/main/java/com/navinfo/collect/library/utils/RealmDBParamUtils.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.navinfo.collect.library.utils; - -public class RealmDBParamUtils { - private static int mtaskId = -1; - - public static int getTaskId() { - return mtaskId; - } - - public static void setTaskId(int taskId) { - mtaskId = taskId; - } -}