增加要素是否捕捉控制参数

This commit is contained in:
qiji4215 2023-09-01 10:26:45 +08:00
parent 8fe236922e
commit 94c9b8fd4f
10 changed files with 150 additions and 15 deletions

View File

@ -46,6 +46,7 @@
"name": "道路种别",
"zoomMin": 15,
"zoomMax": 20,
"catch":false,
"checkLinkId": false
},
"2010": {
@ -472,6 +473,7 @@
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 20,
"catch":false,
"transformer": [
{
"k": "geometry",

View File

@ -122,6 +122,7 @@ class TableInfo {
val zoomMin: Int = 16
val zoomMax: Int = 21
val checkLinkId: Boolean = true//是否需要校验linkid
val catch: Boolean = true//是否需要捕捉
val name: String = ""
var checked : Boolean = true
var transformer: MutableList<Transform> = mutableListOf()

View File

@ -229,6 +229,13 @@ class ImportOMDBHelper @AssistedInject constructor(
if (!renderEntity.properties.containsKey("name")) {
renderEntity.properties["name"] = renderEntity.name;
}
if(currentConfig.catch){
renderEntity.catch=0
}else{
renderEntity.catch=1
}
//遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){

View File

@ -244,6 +244,7 @@ class RealmOperateHelper() {
point: Point,
buffer: Double = DEFAULT_BUFFER,
bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE,
catchAll: Boolean = true,
sort: Boolean = true
): MutableList<RenderEntity> {
val result = mutableListOf<RenderEntity>()
@ -261,14 +262,25 @@ class RealmOperateHelper() {
val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null)
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
val realm = getRealmDefaultInstance()
// 查询realm中对应tile号的数据
val realmList = getRealmTools(RenderEntity::class.java, false)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
var realmList = mutableListOf<RenderEntity>()
if(catchAll){
// 查询realm中对应tile号的数据
realmList = getRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
}else{
// 查询realm中对应tile号的数据
realmList = getRealmTools(RenderEntity::class.java, false)
.equalTo("catch", "0")
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
}
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {
polygon.intersects(it.wkt)

View File

@ -475,7 +475,7 @@ class MainViewModel @Inject constructor(
point.longitude,
point.latitude
),
buffer = 1.0
buffer = 1.0, catchAll = false
)
if (itemList.size == 1) {

View File

@ -23,6 +23,7 @@ class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = nu
val binding = holder.viewBinding as AdapterItemBinding
var renderEntity = data[position]
binding.root.isSelected = selectPosition == position
binding.itemIndex.text = (position+1).toString()
binding.name.text = DataCodeEnum.findTableNameByCode(renderEntity.code)
binding.root.setOnClickListener {
if (selectPosition != position) {

View File

@ -1,16 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/selector_adapter_item_select_bg"
android:padding="5dp">
android:padding="10dp">
<TextView
android:id="@+id/item_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/marker2"
android:maxLength="3"
android:text=""
android:layout_marginRight="@dimen/default_widget_padding"
style="@style/content_font_default_size_13sp" />
<TextView
android:id="@+id/name"
android:layout_toRightOf="@id/item_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="name"
android:textColor="@color/selector_black_blue_color"
android:textSize="16sp" />
</FrameLayout>
</RelativeLayout>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -62,6 +62,7 @@ open class RenderEntity() : RealmObject(), Parcelable {
var zoomMin: Int = 18 //显示最小级别
var zoomMax: Int = 23 //显示最大级别
var enable:Int = 0 // 默认0不是显示 1为渲染显示 2为常显
var catch:Int = 0 // 0捕捉 1不捕捉
constructor(name: String) : this() {
this.name = name

2
vtm

@ -1 +1 @@
Subproject commit 1cb18353849477da3a184f3ce48022760e0e4aea
Subproject commit e3d642433915b478a9f51e4ae7d2414ed24acfaa