Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

 Conflicts:
	app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt
	app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
This commit is contained in:
squallzhjch 2023-08-16 13:43:45 +08:00
commit f9b5c8a1d1
21 changed files with 187 additions and 161 deletions

View File

@ -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

View File

@ -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 {

View File

@ -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<RenderEntity>? {
val resultList = mutableListOf<RenderEntity>()
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<RenderEntity> {
val result = mutableListOf<RenderEntity>()
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 <E : RealmModel> getRealmTools(clazz: Class<E>, enableSql: Boolean): RealmQuery<E> {
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) {

View File

@ -25,14 +25,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
@ -292,7 +292,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)
}
@ -325,10 +325,10 @@ class MainViewModel @Inject constructor(
private suspend fun initQsRecordData() {
if (currentTaskBean != null) {
var list = mutableListOf<QsRecordBean>()
val realm = Realm.getDefaultInstance()
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects =
realm.where<QsRecordBean>().equalTo("taskId", currentTaskBean!!.id).findAll()
realmOperateHelper.getRealmTools(QsRecordBean::class.java,false).findAll()
list = realm.copyFromRealm(objects)
}
mapController.markerHandle.removeAllQsMarker()
@ -343,9 +343,9 @@ class MainViewModel @Inject constructor(
*/
private suspend fun initNoteData() {
var list = mutableListOf<NoteBean>()
val realm = Realm.getDefaultInstance()
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects = realm.where<NoteBean>().findAll()
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java,false).findAll()
list = realm.copyFromRealm(objects)
}
@ -486,11 +486,17 @@ class MainViewModel @Inject constructor(
captureLinkState = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(
val linkList = realmOperateHelper.queryLink(point = point)
/* val linkList = realmOperateHelper.queryLine(
point = point,
)
// val linkList = realmOperateHelper.queryLine(point = point, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE")
buffer = 2.5,
table = "OMDB_LANE_MARK_BOUNDARYTYPE"
)*/
var hisRoadName = false
@ -570,15 +576,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()
@ -1134,14 +1141,6 @@ class MainViewModel @Inject constructor(
}
fun click2Dor3D() {
viewModelScope.launch(Dispatchers.IO) {
Log.e(
"qj",
"${
Realm.getDefaultInstance().where(RenderEntity::class.java).findAll().size
}==安装数量"
)
}
}
/**

View File

@ -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

View File

@ -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 {

View File

@ -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)
// }

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
tools:showIn="navigation_view"
tools:context=".ui.fragment.personalcenter.PersonalCenterFragment">
<group android:checkableBehavior="single">
<item
@ -43,19 +44,6 @@
<group android:checkableBehavior="single">
<item android:title="小标题">
<menu>
<!-- <item-->
<!-- android:id="@+id/personal_center_menu_task_list"-->
<!-- android:icon="@drawable/ic_baseline_format_list_bulleted_24"-->
<!-- android:title="任务列表" />-->
<!-- <item-->
<!-- android:id="@+id/personal_center_menu_qs_record_list"-->
<!-- android:icon="@drawable/ic_baseline_playlist_add_check_24"-->
<!-- android:title="测评结果" />-->
<!-- <item-->
<!-- android:id="@+id/personal_center_menu_layer_manager"-->
<!-- android:icon="@drawable/ic_baseline_layers_24"-->
<!-- android:title="图层管理" />-->
<item
android:id="@+id/personal_center_menu_open_auto_location"
android:icon="@drawable/baseline_person_24"
@ -68,6 +56,18 @@
android:visible="true"
android:title="关闭自动定位" />
<item
android:id="@+id/personal_center_menu_open_all_layer"
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="开启全部图层" />
<item
android:id="@+id/personal_center_menu_close_hide_layer"
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="关闭不渲染图层" />
<item
android:id="@+id/personal_center_menu_test"
android:icon="@drawable/baseline_person_24"

View File

@ -2177,12 +2177,12 @@
<m k="type" v="s_2_p">
<symbol repeat="false" repeat-start="0" rotate="false" repeat-gap="0"
src="assets:omdb/icon_2204_0.svg" symbol-height="24" symbol-width="24"></symbol>
src="assets:omdb/icon_2204_0.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p">
<symbol repeat="false" repeat-start="0" rotate="false" repeat-gap="0"
src="assets:omdb/icon_2204_0.svg" symbol-height="12" symbol-width="12"></symbol>
src="assets:omdb/icon_2204_0.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
</m>

View File

@ -1,56 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.4"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.4">
<defs>
<style>
.h{fill:url(#f);}.i{fill:#fff;}.j,.k{fill:#535a60;}.l{fill:#262d34;isolation:isolate;opacity:.2;}.m{fill:#d82e00;stroke:#8a1c21;}.m,.n{stroke-miterlimit:10;}.k{opacity:0;}.n{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#afbacb" />
<stop offset=".1" stop-color="#c1ccda" />
<stop offset=".4" stop-color="#d9e6f0" />
<stop offset=".5" stop-color="#e3f0f8" />
<stop offset=".6" stop-color="#dde9f2" />
<stop offset=".8" stop-color="#ccd8e4" />
<stop offset="1" stop-color="#b1bbcc" />
<stop offset="1" stop-color="#aeb8c9" />
</linearGradient>
</defs>
<g id="c">
<g>
<rect class="k" y=".7" width="124.7" height="124.7" />
<ellipse id="d" class="l" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="j" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="h"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="n" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="m" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<g>
<path class="i"
d="M43.2,34.5h-.1c0,0,0,1.7,0,1.7h-5.7v.7c-.1,0,5.1,0,5.1,0,0,.7-.3,2.5-.4,3.4-.2,1.7-.8,2.1-2.7,2.2h-1.1c0,0-.6-1.8-.6-1.8h1.4c.6-.2,.8-.2,.9-.7,0-.2,.2-.8,.2-1.1h-5.3l.5-2.6h-.9v-2h8.2c-.6-.5-1.2-1-1.8-1.5v.9h-4.6v-.6c-.4,.4-.9,.8-1.4,1.3l-.9-1.5v.5h-1.2v1.7h1.2v2.1h-1.2v2l1.5-.3v1c0,0,.1,1.1,.1,1.1-1.1,.1-5.4,.8-6.5,1l-.2-2.1c.2,0,.4,0,.7-.1v-5.7h1.9v5.5h.7v-6.2h-2.4v-6.1h5.4v5.2c1-.7,1.7-1.4,2.3-2.3h-1.8v-2.1h2.7c.1-.5,.3-1,.4-1.5l1.9,.3c0,.5-.2,.9-.3,1.3h4v2.1h-2.1c.7,1.2,1.8,2.1,3,2.8l-1,1.7Zm-12.6-3.5h1.6v-1.9h-1.6v1.9Zm9.5,.5c-.4-.5-.7-1-.9-1.6h-.7c-.3,.6-.6,1.1-.9,1.6h2.5Z" />
<path class="i"
d="M45.8,39.5c1-.1,4.2-.9,5.8-1.5l.2,2c-.9,.4-4.6,1.4-5.5,1.5l-.5-2Zm15.9-1c-.1,.6-.2,1-.5,1.7-.5,1.7-1.2,2.3-2.5,2.3s-1.7-.5-2.7-2.1l-.2-.4c-.9,.5-1.8,1-2.8,1.4l-1-2c1.2-.4,2.2-.9,3-1.4-.3-.8-.5-1.8-.7-3l-2.1,.3-.2-2.1,1.9-.3v-1.2c-.1,0-1.3,.1-1.3,.1v-1.7c-1.2,2-2.5,4.2-3.2,5,.7,0,1.7-.4,2.4-.5v2c-1,.2-2.7,.6-3.9,.9-.4,0-.7,.2-.9,.3l-.6-2.2c.6-.2,.8-.3,1.1-.7,.3-.4,.8-1.1,1.3-2-.6,0-1.2,0-1.6,.1h-.7c0,.1-.5-1.9-.5-1.9,.4-.2,.5-.3,.7-.4,.4-.3,1.7-2.5,2.4-4.5l1.9,.9c-.7,1.3-1.9,3.4-2.4,3.9,.4,0,.8,0,1.3,0l1-2.1,1.7,.9v.3c-.1,0,.9-.1,.9-.1,0-1.1-.1-3-.2-3.6h2.1c0,.5,0,1.7,.2,3.3l1.9-.2c-.4-.7-1-1.5-1.5-2.1l1.4-1.1c.6,.6,1.2,1.4,1.7,2.2l-1.1,.9,2.3-.3,.2,2-4.7,.6c0,.4,0,.8,.1,1.2l4.8-.6,.2,2.1-1.9,.3,1.3,1.4c-.8,1-1.7,2-2.8,2.9,.1,.2,.2,.4,.3,.5,.3,.6,.7,.8,.9,.8,.4,0,.5-.2,.8-1.1,.2-.6,.3-.9,.3-1.4l1.8,.9Zm-5.4-3.6c.2,.8,.3,1.4,.5,2,.8-.7,1.5-1.5,2.2-2.4l-2.7,.4Z" />
<path class="i"
d="M72.6,34.5c1.1,2.8,3.4,4.7,6.8,6.1l-1.2,2.4c-3.4-1.8-5.6-3.6-6.9-6.1-1.1,2.1-3.2,4.1-6.7,6l-1.6-2.1c3.6-1.7,6-3.7,6.7-6.3h-5.9v-2.2h6.2v-2.9h-5.2v-2.2h12.8v2.2h-5.3v2.9h6.2v2.2h-6Z" />
<path class="i"
d="M86.1,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.4" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.4"><defs><style>.i{fill:url(#f);}.j{fill:#fff;}.k,.l{fill:#535a60;}.m{fill:#262d34;isolation:isolate;opacity:.2;}.n{fill:#d82e00;stroke:#8a1c21;}.n,.o{stroke-miterlimit:10;}.l{opacity:0;}.o{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}</style><linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#989898"/><stop offset="0" stop-color="#a3a3a3"/><stop offset=".1" stop-color="#c4c5c5"/><stop offset=".2" stop-color="#d8d9d9"/><stop offset=".3" stop-color="#e0e1e1"/><stop offset=".4" stop-color="#dbdcdc"/><stop offset=".5" stop-color="#cccece"/><stop offset=".6" stop-color="#b5b6b7"/><stop offset=".7" stop-color="#949697"/><stop offset=".8" stop-color="#6a6c6f"/><stop offset=".8" stop-color="#3f4246"/><stop offset="1" stop-color="#404247"/><stop offset="1" stop-color="#43434a"/></linearGradient><linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><g><rect class="l" y=".7" width="124.7" height="124.7"/><ellipse id="d" class="m" cx="62.4" cy="62.5" rx="14.4" ry="3.7"/><ellipse id="e" class="k" cx="62.4" cy="62.5" rx="7.5" ry="3"/><path class="i" d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z"/><rect class="o" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4"/><rect class="n" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1"/><g><path class="j" d="M43.2,34.5h-.1c0,0,0,1.7,0,1.7h-5.7v.7c-.1,0,5.1,0,5.1,0,0,.7-.3,2.5-.4,3.4-.2,1.7-.8,2.1-2.7,2.2h-1.1c0,0-.6-1.8-.6-1.8h1.4c.6-.2,.8-.2,.9-.7,0-.2,.2-.8,.2-1.1h-5.3l.5-2.6h-.9v-2h8.2c-.6-.5-1.2-1-1.8-1.5v.9h-4.6v-.6c-.4,.4-.9,.8-1.4,1.3l-.9-1.5v.5h-1.2v1.7h1.2v2.1h-1.2v2l1.5-.3v1c0,0,.1,1.1,.1,1.1-1.1,.1-5.4,.8-6.5,1l-.2-2.1c.2,0,.4,0,.7-.1v-5.7h1.9v5.5h.7v-6.2h-2.4v-6.1h5.4v5.2c1-.7,1.7-1.4,2.3-2.3h-1.8v-2.1h2.7c.1-.5,.3-1,.4-1.5l1.9,.3c0,.5-.2,.9-.3,1.3h4v2.1h-2.1c.7,1.2,1.8,2.1,3,2.8l-1,1.7Zm-12.6-3.5h1.6v-1.9h-1.6v1.9Zm9.5,.5c-.4-.5-.7-1-.9-1.6h-.7c-.3,.6-.6,1.1-.9,1.6h2.5Z"/><path class="j" d="M45.8,39.5c1-.1,4.2-.9,5.8-1.5l.2,2c-.9,.4-4.6,1.4-5.5,1.5l-.5-2Zm15.9-1c-.1,.6-.2,1-.5,1.7-.5,1.7-1.2,2.3-2.5,2.3s-1.7-.5-2.7-2.1l-.2-.4c-.9,.5-1.8,1-2.8,1.4l-1-2c1.2-.4,2.2-.9,3-1.4-.3-.8-.5-1.8-.7-3l-2.1,.3-.2-2.1,1.9-.3v-1.2c-.1,0-1.3,.1-1.3,.1v-1.7c-1.2,2-2.5,4.2-3.2,5,.7,0,1.7-.4,2.4-.5v2c-1,.2-2.7,.6-3.9,.9-.4,0-.7,.2-.9,.3l-.6-2.2c.6-.2,.8-.3,1.1-.7,.3-.4,.8-1.1,1.3-2-.6,0-1.2,0-1.6,.1h-.7c0,.1-.5-1.9-.5-1.9,.4-.2,.5-.3,.7-.4,.4-.3,1.7-2.5,2.4-4.5l1.9,.9c-.7,1.3-1.9,3.4-2.4,3.9,.4,0,.8,0,1.3,0l1-2.1,1.7,.9v.3c-.1,0,.9-.1,.9-.1,0-1.1-.1-3-.2-3.6h2.1c0,.5,0,1.7,.2,3.3l1.9-.2c-.4-.7-1-1.5-1.5-2.1l1.4-1.1c.6,.6,1.2,1.4,1.7,2.2l-1.1,.9,2.3-.3,.2,2-4.7,.6c0,.4,0,.8,.1,1.2l4.8-.6,.2,2.1-1.9,.3,1.3,1.4c-.8,1-1.7,2-2.8,2.9,.1,.2,.2,.4,.3,.5,.3,.6,.7,.8,.9,.8,.4,0,.5-.2,.8-1.1,.2-.6,.3-.9,.3-1.4l1.8,.9Zm-5.4-3.6c.2,.8,.3,1.4,.5,2,.8-.7,1.5-1.5,2.2-2.4l-2.7,.4Z"/><path class="j" d="M72.6,34.5c1.1,2.8,3.4,4.7,6.8,6.1l-1.2,2.4c-3.4-1.8-5.6-3.6-6.9-6.1-1.1,2.1-3.2,4.1-6.7,6l-1.6-2.1c3.6-1.7,6-3.7,6.7-6.3h-5.9v-2.2h6.2v-2.9h-5.2v-2.2h12.8v2.2h-5.3v2.9h6.2v2.2h-6Z"/><path class="j" d="M86.1,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z"/></g></g><path id="h" class="j" d="M73.2,11.9h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="131.3" height="131.3" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 131.3 131.3"><defs><style>.h{fill:url(#f);}.i{fill:#fff;}.j{fill:#1566e8;}.k{fill:#535a60;}.l{fill:#262d34;isolation:isolate;opacity:.2;}.m{fill:url(#g);stroke:#8b9fae;stroke-miterlimit:10;stroke-width:1.1px;}</style><linearGradient id="f" x1="63.4" y1="54.8" x2="68.2" y2="54.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#989898"/><stop offset="0" stop-color="#a3a3a3"/><stop offset=".1" stop-color="#c4c5c5"/><stop offset=".2" stop-color="#d8d9d9"/><stop offset=".3" stop-color="#e0e1e1"/><stop offset=".4" stop-color="#dbdcdc"/><stop offset=".5" stop-color="#cccece"/><stop offset=".6" stop-color="#b5b6b7"/><stop offset=".7" stop-color="#949697"/><stop offset=".8" stop-color="#6a6c6f"/><stop offset=".8" stop-color="#3f4246"/><stop offset="1" stop-color="#404247"/><stop offset="1" stop-color="#43434a"/></linearGradient><linearGradient id="g" x1="41.1" y1="26.7" x2="90.2" y2="26.7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><rect class="i" width="131.3" height="131.3"/><g><ellipse id="d" class="l" cx="65.7" cy="66.2" rx="14.4" ry="3.7"/><ellipse id="e" class="k" cx="65.7" cy="66.2" rx="7.5" ry="3"/><path class="h" d="M65.7,42.6h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z"/><rect class="m" x="41.1" y="1" width="49" height="51.4" rx="24.5" ry="24.5"/><rect class="j" x="41.7" y="3.3" width="48" height="48.5" rx="24" ry="24"/><g><path class="i" d="M55,10.3l3.5-1.7-1.4,3.9,.3,.8c8.4-3.6,15-2.4,21,3.9l-2.3,1.8c-4.8-5.2-10.8-6.1-17.4-3l.4,1,4.2,.9-3.5,2.1-7.9-2.6,3-7.1Z"/><path class="i" d="M55.2,46l-3.2-2.2,4.1-.7,.5-.7c-7.2-5.4-9.5-11.7-7-19.9l2.7,1c-2.1,6.8,0,12.3,6.1,16.4l.6-.8-1.2-4.1,3.6,1.9,1.7,8.1-7.7,.9Z"/><path class="i" d="M86.5,27.8l-.3,3.9-2.7-3.2h-.8c-1,8.9-5.2,14-13.7,16l-.5-2.8c7-1.7,10.8-6.3,11.2-13.6h-1c0,0-2.8,3.1-2.8,3.1l-.2-4.1,6.1-5.5,4.8,6.1Z"/></g><g><path class="i" d="M60.6,30.4v.4c-.5,0-2.6,.4-3.1,.5v-1.1s.5-.1,1-.2v-1.8h-.8v-1.1h.8v-1.5h-.9v-1.1h2.9v1.1h-.9v1.5h.8v1.1h-.8v1.6l.9-.2v.7Zm4.3-.2c-.5-.7-1.2-1.6-1.7-2.2v4h-1.1v-3.5c-.3,.5-.7,1-1.2,1.4l-.8-.9c1-1,1.7-2.2,2.3-3.5h-1.6v-1.2h4.4v1.2h-1.6c-.2,.5-.4,1-.6,1.4h.3v.3l.3-.3c.6,.5,1.6,1.6,2.1,2.3l-.7,.9Z"/><path class="i" d="M71.8,31.2h-5.1v-2.2h1.1v1.2h1v-1.4h1.1v1.4h.9v-1.2h1.1v2.2Zm2-3.4c0,0-.1,2.8-.1,3,0,1-.3,1.3-1.1,1.3h-.9c0,0-.3-.8-.3-.8h.7c.4,0,.4-.3,.4-.8,0-.2,0-1.6,0-1.9h-5.4v-4h1.7c0-.2,.2-.5,.3-.7h1.2c0,.3-.1,.5-.2,.7h2.8c0,.4,0,1.4,0,1.7,0,1-.4,1.1-1.2,1.2h-.6c0,0-.3-.8-.3-.8h.5c.4,0,.5-.2,.5-.4s0-.5,0-.7h-2.4c.4,.3,.8,.6,1.1,.9l-.6,.8c-.4-.4-.9-.8-1.3-1.1l.5-.6h-.8v2.1h5.4Z"/></g></g></g></g></svg>
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="131.3" height="131.3" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 131.3 131.3"><defs><style>.i{fill:url(#g);}.j{fill:url(#h);stroke:#8b9fae;stroke-miterlimit:10;stroke-width:1.1px;}.k{fill:#fff;}.l{fill:#1566e8;}.m{fill:#535a60;}.n{fill:none;opacity:0;}.o{fill:#262d34;isolation:isolate;opacity:.2;}</style><linearGradient id="g" x1="63.4" y1="374.1" x2="68.2" y2="374.1" gradientTransform="translate(0 428.8) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#989898"/><stop offset="0" stop-color="#a3a3a3"/><stop offset="0" stop-color="#c4c5c5"/><stop offset=".2" stop-color="#d8d9d9"/><stop offset=".3" stop-color="#e0e1e1"/><stop offset=".4" stop-color="#dbdcdc"/><stop offset=".5" stop-color="#cccece"/><stop offset=".6" stop-color="#b5b6b7"/><stop offset=".7" stop-color="#949697"/><stop offset=".8" stop-color="#6a6c6f"/><stop offset=".8" stop-color="#3f4246"/><stop offset="1" stop-color="#404247"/><stop offset="1" stop-color="#43434a"/></linearGradient><linearGradient id="h" x1="41.1" y1="402.1" x2="90.2" y2="402.1" gradientTransform="translate(0 428.8) scale(1 -1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset="0" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g id="d"><g><rect class="n" width="131.3" height="131.3"/><g><ellipse id="e" class="o" cx="65.7" cy="66.2" rx="14.4" ry="3.7"/><ellipse id="f" class="m" cx="65.7" cy="66.2" rx="7.5" ry="3"/><path class="i" d="M65.7,42.6h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6h.1Z"/><path class="j" d="M65.6,1h0c13.5,0,24.5,11,24.5,24.5v2.4c0,13.5-11,24.5-24.5,24.5h0c-13.5,0-24.5-11-24.5-24.5v-2.4c0-13.5,11-24.5,24.5-24.5Z"/><path class="l" d="M65.7,3.3h0c13.3,0,24,10.7,24,24v.5c0,13.3-10.7,24-24,24h0c-13.3,0-24-10.7-24-24v-.5c0-13.3,10.7-24,24-24Z"/><g><path class="k" d="M55,10.3l3.5-1.7-1.4,3.9,.3,.8c8.4-3.6,15-2.4,21,3.9l-2.3,1.8c-4.8-5.2-10.8-6.1-17.4-3l.4,1,4.2,.9-3.5,2.1-7.9-2.6,3-7.1h.1Z"/><path class="k" d="M55.2,46l-3.2-2.2,4.1-.7,.5-.7c-7.2-5.4-9.5-11.7-7-19.9l2.7,1c-2.1,6.8,0,12.3,6.1,16.4l.6-.8-1.2-4.1,3.6,1.9,1.7,8.1-7.7,.9h-.2Z"/><path class="k" d="M86.5,27.8l-.3,3.9-2.7-3.2h-.8c-1,8.9-5.2,14-13.7,16l-.5-2.8c7-1.7,10.8-6.3,11.2-13.6h-1l-2.8,3.1-.2-4.1,6.1-5.5,4.8,6.1h0Z"/></g><g><path class="k" d="M60.6,30.4v.4c-.5,0-2.6,.4-3.1,.5v-1.1l1-.2v-1.8h-.8v-1.1h.8v-1.5h-.9v-1.1h2.9v1.1h-.9v1.5h.8v1.1h-.8v1.6l.9-.2v.7h0Zm4.3-.1c-.5-.7-1.2-1.6-1.7-2.2v4h-1.1v-3.5c-.3,.5-.7,1-1.2,1.4l-.8-.9c1-1,1.7-2.2,2.3-3.5h-1.6v-1.2h4.4v1.2h-1.6c-.2,.5-.4,1-.6,1.4h.3v.3l.3-.3c.6,.5,1.6,1.6,2.1,2.3l-.7,.9h-.1Z"/><path class="k" d="M71.8,31.2h-5.1v-2.2h1.1v1.2h1v-1.4h1.1v1.4h.9v-1.2h1.1v2.2h0Zm2-3.4s0,2.8,0,3c0,1-.3,1.3-1.1,1.3h-.9l-.3-.8h.7c.4,0,.4-.3,.4-.8v-1.9h-5.4v-4h1.7c0-.2,.2-.5,.3-.7h1.2c0,.3,0,.5-.2,.7h2.8v1.7c0,1-.4,1.1-1.2,1.2h-.6l-.3-.8h.5c.4,0,.5-.2,.5-.4v-.7h-2.4c.4,.3,.8,.6,1.1,.9l-.6,.8c-.4-.4-.9-.8-1.3-1.1l.5-.6h-.8v2.1h5.5Z"/></g></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -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<SketchAttachContent> = RealmList<SketchAttachContent>(),
) : RealmObject()

View File

@ -1,4 +1,4 @@
package com.navinfo.collect.library.enum
package com.navinfo.collect.library.enums
/*
* 要素枚举定义

View File

@ -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"
)
}

View File

@ -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<ReferenceEntity> 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();

View File

@ -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<RenderEntity> 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<RenderEntity> realmQuery = Realm.getDefaultInstance().where(RenderEntity.class).rawPredicate(sql);
// 筛选不显示的数据
if (Constant.HAD_LAYER_INVISIABLE_ARRAY != null && Constant.HAD_LAYER_INVISIABLE_ARRAY.length > 0) {
realmQuery.beginGroup();

View File

@ -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;
}
}

View File

@ -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;
}
}