增加全要素捕捉开关及属性信息显示窗体展示

This commit is contained in:
qiji4215 2023-09-14 17:49:39 +08:00
parent c3d9ed5a2f
commit fbdaeb3939
6 changed files with 75 additions and 13 deletions

View File

@ -108,6 +108,11 @@ class Constant {
*/
var MapRotateEnable = false
/**
* 全要素捕捉
*/
var CATCH_ALL = false
var IS_VIDEO_SPEED by kotlin.properties.Delegates.notNull<Boolean>()
const val message_status_late = "预约,待发送"

View File

@ -287,13 +287,22 @@ class RealmOperateHelper() {
.findAll()
} else {
// 查询realm中对应tile号的数据
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.greaterThan("catchEnable", 0)
.findAll()
if(Constant.CATCH_ALL){
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
}else{
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.greaterThan("catchEnable", 0)
.findAll()
}
}
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {

View File

@ -1,6 +1,7 @@
package com.navinfo.omqs.ui.fragment.itemlist
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.enums.DataCodeEnum
@ -8,8 +9,8 @@ import com.navinfo.omqs.databinding.AdapterItemBinding
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder
class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = null) :
BaseRecyclerViewAdapter<RenderEntity>() {
class ItemAdapter(private var itemListener: ((Int,Boolean, RenderEntity) -> Unit?)? = null,
) : BaseRecyclerViewAdapter<RenderEntity>() {
var selectPosition = -1
@ -33,8 +34,14 @@ class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = nu
}
if (itemListener != null) {
itemListener!!.invoke(position, renderEntity)
itemListener!!.invoke(position,false, renderEntity)
}
}
binding.root.setOnLongClickListener(View.OnLongClickListener {
if (itemListener != null) {
itemListener!!.invoke(position, true,renderEntity)
}
true
})
}
}

View File

@ -5,12 +5,19 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.viewModelScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import com.navinfo.collect.library.data.entity.NoteBean
import com.navinfo.omqs.databinding.FragmentItemListBinding
import com.navinfo.omqs.ui.activity.map.MainViewModel
import com.navinfo.omqs.ui.dialog.FirstDialog
import com.navinfo.omqs.ui.fragment.BaseFragment
import com.navinfo.omqs.ui.widget.RecycleViewDivider
import dagger.hilt.android.AndroidEntryPoint
import io.realm.Realm
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@AndroidEntryPoint
@ -20,8 +27,23 @@ class ItemListFragment(private var backListener: ((ItemListFragment) -> Unit?)?
private val binding get() = _binding!!
private val viewModel by activityViewModels<MainViewModel>()
private val adapter by lazy {
ItemAdapter { _, data ->
viewModel.showSignMoreInfo(data)
ItemAdapter { _,isLongClick, data ->
if(!isLongClick){
viewModel.showSignMoreInfo(data)
} else{
val mDialog = FirstDialog(context)
mDialog.setTitle("提示?")
val gson = Gson()
mDialog.setMessage(gson.toJson(data.properties))
mDialog.setPositiveButton(
"确定"
) { dialog, _ ->
dialog.dismiss()
}
mDialog.setNegativeButton("取消", null)
mDialog.setCancelVisibility(View.GONE)
mDialog.show()
}
}
}

View File

@ -152,7 +152,14 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
it.title = "锁定地图旋转及视角"
}
}
R.id.personal_center_menu_catch_all -> {
Constant.CATCH_ALL = !Constant.CATCH_ALL
if (Constant.CATCH_ALL) {
it.title = "关闭全要素捕捉"
} else {
it.title = "开启全要素捕捉"
}
}
R.id.personal_center_menu_test -> {
viewModel.readRealmData()
//116.25017070328308 40.061730653134696
@ -206,6 +213,13 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
it.title = "锁定地图旋转及视角"
}
}
R.id.personal_center_menu_catch_all->{
if (Constant.CATCH_ALL) {
it.title = "关闭全要素捕捉"
} else {
it.title = "开启全要素捕捉"
}
}
}
}
}

View File

@ -46,6 +46,11 @@
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="锁定地图旋转及视角" />
<item
android:id="@+id/personal_center_menu_catch_all"
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="全要素捕捉" />
<item
android:id="@+id/personal_center_menu_version"
android:icon="@drawable/ic_baseline_layers_24"