From 8e4f8459d59beacf8ac68483b2cb5085240d74c7 Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Fri, 21 Apr 2023 17:20:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BD=A8=E8=BF=B9=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=B8=B2=E6=9F=93=E4=B8=9A=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/navinfo/omqs/OMQSApplication.kt | 4 --- .../omqs/ui/activity/map/MainActivity.kt | 4 --- .../omqs/ui/activity/map/MainViewModel.kt | 2 +- .../src/main/assets/editormarker.xml | 19 +++++++++++ .../data/dao/impl/MapLifeDataBase.java | 8 +---- .../library/data/dao/impl}/TraceDataBase.java | 5 +-- .../library/data/handler/BaseDataHandler.kt | 6 ++-- .../data/handler/DataNiLocationHandler.kt | 11 ++++--- .../data/handler/DataProjectHandler.kt | 5 +-- .../map/handler/LayerManagerHandler.kt | 32 +++++++++++++------ .../map/source/MapLifeNiLocationDecoder.java | 2 +- .../MapLifeNiLocationTileDataSource.java | 7 ++-- .../source/MapLifeNiLocationTileSource.java | 2 ++ 13 files changed, 65 insertions(+), 42 deletions(-) rename {app/src/main/java/com/navinfo/omqs/db => collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl}/TraceDataBase.java (98%) diff --git a/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt b/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt index 85afd8be..bd145e45 100644 --- a/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt +++ b/app/src/main/java/com/navinfo/omqs/OMQSApplication.kt @@ -2,8 +2,6 @@ package com.navinfo.omqs import android.app.Application import android.util.Log -import com.navinfo.collect.library.data.dao.impl.MapLifeDataBase -import com.navinfo.omqs.db.TraceDataBase import com.navinfo.omqs.tools.FileManager import com.navinfo.omqs.ui.manager.TakePhotoManager import com.navinfo.omqs.util.NetUtils @@ -11,9 +9,7 @@ import dagger.hilt.android.HiltAndroidApp import org.videolan.vlc.Util import io.realm.Realm import io.realm.RealmConfiguration -import kotlinx.coroutines.launch import java.io.File -import java.math.BigInteger import java.security.MessageDigest @HiltAndroidApp diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 26fd39ad..8312a50d 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -1,20 +1,16 @@ package com.navinfo.omqs.ui.activity.map import android.os.Bundle -import android.util.Log import androidx.activity.viewModels import androidx.core.view.WindowCompat import androidx.databinding.DataBindingUtil -import com.blankj.utilcode.util.ToastUtils import androidx.lifecycle.lifecycleScope -import androidx.lifecycle.viewModelScope import androidx.navigation.findNavController import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.handler.NiLocationListener import com.navinfo.omqs.Constant import com.navinfo.omqs.R import com.navinfo.omqs.databinding.ActivityMainBinding -import com.navinfo.omqs.db.TraceDataBase import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager import com.navinfo.omqs.system.SystemConstant import com.navinfo.omqs.ui.activity.BaseActivity 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 4f278673..f7a2c187 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 @@ -5,13 +5,13 @@ import android.content.DialogInterface import android.util.Log import androidx.lifecycle.ViewModel import com.blankj.utilcode.util.ToastUtils +import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.NiLocation import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.utils.GeometryTools import com.navinfo.collect.library.utils.GeometryToolsKt import com.navinfo.omqs.Constant import com.navinfo.omqs.R -import com.navinfo.omqs.db.TraceDataBase import com.navinfo.omqs.system.SystemConstant import com.navinfo.omqs.ui.dialog.CommonDialog import com.navinfo.omqs.ui.manager.TakePhotoManager diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 1cbff96f..7ca48369 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1530,4 +1530,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/MapLifeDataBase.java b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/MapLifeDataBase.java index bb98e07a..382f7ea1 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/MapLifeDataBase.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/MapLifeDataBase.java @@ -10,7 +10,6 @@ import androidx.sqlite.db.SupportSQLiteDatabase; import com.navinfo.collect.library.data.entity.CheckManager; import com.navinfo.collect.library.data.entity.Element; import com.navinfo.collect.library.data.entity.LayerManager; -import com.navinfo.collect.library.data.entity.NiLocation; import com.navinfo.collect.library.data.entity.Project; import com.navinfo.collect.library.data.entity.TileElement; import com.tencent.wcdb.database.SQLiteCipherSpec; @@ -25,7 +24,7 @@ import com.tencent.wcdb.room.db.WCDBDatabase; import java.util.ArrayList; import java.util.List; -@Database(entities = {Element.class, TileElement.class, LayerManager.class, Project.class, NiLocation.class, CheckManager.class},version = 1, exportSchema = false) +@Database(entities = {Element.class, TileElement.class, LayerManager.class, Project.class, CheckManager.class},version = 1, exportSchema = false) public abstract class MapLifeDataBase extends RoomDatabase { // marking the instance as volatile to ensure atomic access to the variable /** @@ -38,11 +37,6 @@ public abstract class MapLifeDataBase extends RoomDatabase { */ public abstract IElementDao getElementDao(); - /** - * 地图坐标库类 - */ - public abstract INiLocationDao getNiLocationDao(); - /** * 图层要素数据库类 */ diff --git a/app/src/main/java/com/navinfo/omqs/db/TraceDataBase.java b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/TraceDataBase.java similarity index 98% rename from app/src/main/java/com/navinfo/omqs/db/TraceDataBase.java rename to collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/TraceDataBase.java index 99d2ae2c..99e861bd 100644 --- a/app/src/main/java/com/navinfo/omqs/db/TraceDataBase.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/dao/impl/TraceDataBase.java @@ -1,14 +1,15 @@ -package com.navinfo.omqs.db; +package com.navinfo.collect.library.data.dao.impl; import android.content.Context; import android.os.AsyncTask; import android.util.Log; + import androidx.annotation.NonNull; import androidx.room.Database; import androidx.room.Room; import androidx.room.RoomDatabase; import androidx.sqlite.db.SupportSQLiteDatabase; -import com.navinfo.collect.library.data.dao.impl.INiLocationDao; + import com.navinfo.collect.library.data.entity.NiLocation; import com.tencent.wcdb.database.SQLiteCipherSpec; import com.tencent.wcdb.database.SQLiteDatabase; diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/BaseDataHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/BaseDataHandler.kt index e6064283..35a47e72 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/BaseDataHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/BaseDataHandler.kt @@ -1,9 +1,9 @@ package com.navinfo.collect.library.data.handler import android.content.Context -import com.navinfo.collect.library.data.dao.impl.MapLifeDataBase +import androidx.room.RoomDatabase -open class BaseDataHandler(context: Context, dataBase: MapLifeDataBase) { +open class BaseDataHandler(context: Context, dataBase: RoomDatabase) { protected val mContext: Context = context; - protected val mDataBase: MapLifeDataBase = dataBase; + protected val mDataBase: RoomDatabase = dataBase; } \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataNiLocationHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataNiLocationHandler.kt index 5415baee..d5e82ce4 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataNiLocationHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataNiLocationHandler.kt @@ -8,6 +8,7 @@ import android.os.Handler import android.os.Looper import android.util.Log import com.navinfo.collect.library.data.dao.impl.MapLifeDataBase +import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.* import com.navinfo.collect.library.data.entity.DataLayerItemType.* import com.navinfo.collect.library.utils.GeometryTools @@ -25,7 +26,7 @@ import kotlin.concurrent.thread open class -DataNiLocationHandler(context: Context, dataBase: MapLifeDataBase) : +DataNiLocationHandler(context: Context, dataBase: TraceDataBase) : BaseDataHandler(context, dataBase) { /** @@ -58,11 +59,11 @@ DataNiLocationHandler(context: Context, dataBase: MapLifeDataBase) : } } - val niLocationLoad = mDataBase.niLocationDao.find(niLocation.id); + val niLocationLoad = (mDataBase as TraceDataBase).niLocationDao.find(niLocation.id); if(niLocationLoad!=null){ - mDataBase.niLocationDao.update(niLocation) + (mDataBase as TraceDataBase).niLocationDao.update(niLocation) }else{ - mDataBase.niLocationDao.insert(niLocation) + (mDataBase as TraceDataBase).niLocationDao.insert(niLocation) } Handler(Looper.getMainLooper()).post { callback.invoke(true, "") @@ -89,7 +90,7 @@ DataNiLocationHandler(context: Context, dataBase: MapLifeDataBase) : "uuid=?", arrayOf("'${niLocation.id}'") ) - mDataBase.niLocationDao.delete(niLocation); + (mDataBase as TraceDataBase).niLocationDao.delete(niLocation); } catch (e: Throwable) { Handler(Looper.getMainLooper()).post { callback.invoke(false, "${e.message}") diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataProjectHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataProjectHandler.kt index e1bf43c5..72f12d81 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataProjectHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/handler/DataProjectHandler.kt @@ -4,6 +4,7 @@ import android.content.Context import android.os.Handler import android.os.Looper import com.navinfo.collect.library.data.dao.impl.MapLifeDataBase +import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.entity.Project import kotlin.concurrent.thread @@ -22,7 +23,7 @@ open class DataProjectHandler(context: Context, dataBase: MapLifeDataBase) : ) { thread(start = true) { try { - mDataBase.projectManagerDao.insert(project) + (mDataBase as MapLifeDataBase).projectManagerDao.insert(project) Handler(Looper.getMainLooper()).post { callback.invoke(true, "") } @@ -41,7 +42,7 @@ open class DataProjectHandler(context: Context, dataBase: MapLifeDataBase) : */ fun getProjectList(callback: (list: List) -> Unit) { thread(start = true) { - val list = mDataBase.projectManagerDao.findList(); + val list = (mDataBase as MapLifeDataBase).projectManagerDao.findList(); Handler(Looper.getMainLooper()).post { callback.invoke(list) } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt index 7546a491..0bd7b965 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt @@ -10,7 +10,6 @@ import androidx.lifecycle.lifecycleScope import com.navinfo.collect.library.R import com.navinfo.collect.library.data.entity.QsRecordBean import com.navinfo.collect.library.map.NIMapView -import com.navinfo.collect.library.map.NIMapView.LAYER_GROUPS import com.navinfo.collect.library.map.cluster.ClusterMarkerItem import com.navinfo.collect.library.map.cluster.ClusterMarkerRenderer import com.navinfo.collect.library.map.layers.MyItemizedLayer @@ -96,10 +95,6 @@ open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tr private fun initMap() { loadBaseMap() - mMapView.switchTileVectorLayerTheme(NIMapView.MAP_THEME.DEFAULT) - //初始化之间数据图层 - initQsRecordDataLayer() - mMapView.vtmMap.updateMap() mapLifeNiLocationTileSource = MapLifeNiLocationTileSource(mContext, mTracePath) @@ -107,7 +102,24 @@ open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tr labelNiLocationLayer = LabelLayer(mMapView.vtmMap, vectorNiLocationTileLayer, LabelTileLoaderHook(), 15) -// initMapLifeSource() + if(vectorNiLocationTileLayer!=null){ + addLayer(vectorNiLocationTileLayer,NIMapView.LAYER_GROUPS.BASE) + } + if(labelNiLocationLayer!=null){ + addLayer(labelNiLocationLayer, NIMapView.LAYER_GROUPS.BASE) + } + + vectorNiLocationTileLayer.isEnabled = false + labelNiLocationLayer.isEnabled = false + + mMapView.switchTileVectorLayerTheme(NIMapView.MAP_THEME.DEFAULT) + + //初始化之间数据图层 + initQsRecordDataLayer() + + mMapView.vtmMap.updateMap() + + } @@ -522,14 +534,14 @@ open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tr //显示轨迹图层 fun showNiLocationLayer() { - if(labelNiLocationLayer!=null){ - addLayer(labelNiLocationLayer, NIMapView.LAYER_GROUPS.VECTOR) - } + vectorNiLocationTileLayer.isEnabled = true + labelNiLocationLayer.isEnabled = true } //隐藏轨迹图层 fun hideNiLocationLayer() { - removeLayer(labelNiLocationLayer) + vectorNiLocationTileLayer.isEnabled = false + labelNiLocationLayer.isEnabled = false } } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationDecoder.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationDecoder.java index 631f9259..abb33510 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationDecoder.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationDecoder.java @@ -90,7 +90,7 @@ public class MapLifeNiLocationDecoder extends TileDecoder { } if(count==0){ properties.put("nav_style","symbol_object_line"); - parseGeometry(layerName, GeometryTools.createGeometry("LINESTRING (116.245567 40.073475, 116.245855 40.072811, 116.24706 40.073034)"), properties); + parseGeometry(layerName, GeometryTools.createGeometry("LINESTRING (116.245859 40.073475, 116.245855 40.073477)"), properties); } // if(count%55==0){ // Log.e("qj","decode==geometry==symbol_track_point"+geometry.toString()+String.valueOf(anyNum)); diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java index 7bad0cfe..52909ec7 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileDataSource.java @@ -6,6 +6,7 @@ import android.util.Log; import androidx.annotation.RequiresApi; import com.navinfo.collect.library.data.dao.impl.MapLifeDataBase; +import com.navinfo.collect.library.data.dao.impl.TraceDataBase; import com.navinfo.collect.library.data.entity.Element; import com.navinfo.collect.library.data.entity.NiLocation; import org.oscim.core.MapElement; @@ -43,16 +44,16 @@ public class MapLifeNiLocationTileDataSource implements ITileDataSource { // 获取tile对应的坐标范围 if (tile.zoomLevel >= 10 && tile.zoomLevel <= 20) { - int m = 20 - tile.zoomLevel; + int m = 21 - tile.zoomLevel; int xStart = (int) tile.tileX << m; int xEnd = (int) ((tile.tileX + 1) << m); int yStart = (int) tile.tileY << m; int yEnd = (int) ((tile.tileY + 1) << m); List list = null; if(mEndTime!=0){ - list = MapLifeDataBase.getDatabase(mCon, dbName).getNiLocationDao().timeTofindList(xStart, xEnd, yStart, yEnd,mStartTime,mEndTime); + list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().timeTofindList(xStart, xEnd, yStart, yEnd,mStartTime,mEndTime); }else{ - list = MapLifeDataBase.getDatabase(mCon, dbName).getNiLocationDao().findList(xStart, xEnd, yStart, yEnd); + list = TraceDataBase.getDatabase(mCon, dbName).getNiLocationDao().findList(xStart, xEnd, yStart, yEnd); } Log.e("qj","query"+(list==null?0:list.size())+"==="+xStart+"==="+xEnd+"==="+yStart+"==="+yEnd); diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileSource.java index 2b1f4be4..d169bb12 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileSource.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/MapLifeNiLocationTileSource.java @@ -5,6 +5,8 @@ import android.content.Context; import org.oscim.tiling.ITileDataSource; import org.oscim.tiling.TileSource; +import java.util.Date; + public class MapLifeNiLocationTileSource extends TileSource { private Context mCon; private String dbName;