merge code

This commit is contained in:
qiji4215 2023-08-11 09:49:45 +08:00
parent 311823cc6a
commit 061aca96ab
4 changed files with 82 additions and 13 deletions

View File

@ -88,6 +88,69 @@ class RealmOperateHelper() {
return result
}
/**
* 根据当前点位查询匹配的Link数据
* @param point 点位经纬度信息
* @param buffer 点位的外扩距离
* @param bufferType 点位外扩距离的单位 -Meter像素-PIXEL
* @param sort 是否需要排序
* */
@RequiresApi(Build.VERSION_CODES.N)
suspend fun queryLine(
point: GeoPoint,
buffer: Double = DEFAULT_BUFFER,
bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE,
table: String,
sort: Boolean = true
): MutableList<RenderEntity> {
val result = mutableListOf<RenderEntity>()
val polygon = getPolygonFromPoint(
GeometryTools.createPoint(point.longitude, point.latitude),
buffer,
bufferType
)
// 根据polygon查询相交的tile号
val tileXSet = mutableSetOf<Int>()
GeometryToolsKt.getTileXByGeometry(polygon.toString(), tileXSet)
val tileYSet = mutableSetOf<Int>()
GeometryToolsKt.getTileYByGeometry(polygon.toString(), tileYSet)
// 对tileXSet和tileYSet查询最大最小值
val xStart = tileXSet.stream().min(Comparator.naturalOrder()).orElse(null)
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)
// 查询realm中对应tile号的数据
val realm = Realm.getDefaultInstance()
val realmList = realm.where(RenderEntity::class.java)
.equalTo("table", table)
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList)
val queryResult = dataList?.stream()?.filter {
polygon.intersects(it.wkt)
}?.toList()
queryResult?.let {
if (sort) {
result.addAll(
sortRenderEntity(
GeometryTools.createPoint(
point.longitude,
point.latitude
), it
)
)
} else {
result.addAll(it)
}
}
return result
}
suspend fun captureTaskLink(
point: GeoPoint,
buffer: Double = DEFAULT_BUFFER,

View File

@ -475,11 +475,14 @@ 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, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE")
var hisRoadName = false
if (linkList.isNotEmpty()) {
//看板数据
val signList = mutableListOf<SignBean>()

View File

@ -38,7 +38,7 @@
<item
android:id="@+id/personal_center_menu_version"
android:icon="@drawable/ic_baseline_layers_24"
android:title="版本ONE_23QE4_V1.1.0_20230804_A" />
android:title="版本ONE_23QE4_V1.2.0_20230811_A" />
</group>
<group android:checkableBehavior="single">
<item android:title="小标题">

View File

@ -2036,13 +2036,20 @@
</m>
<m k="boundaryType" v="1">
<!--无标线无可区分边界-->
<line dasharray="12,6" repeat-start="0" stroke="#ffffff" width="0.2"/>
<line dasharray="5,5" repeat-start="0" stroke="#ffffff" width="0.2"/>
</m>
</m>
<!-- 车道边界类型 -->
<m v="OMDB_LANE_MARK_BOUNDARYTYPE">
<outline-layer id="boundary" stroke="#ffffff" width="0.1" />
<!--只区分虚线与实线-->
<m k="boundaryType" v="1">
<line dasharray="5,5" repeat-start="5" stroke="#90A0BD" width="0.05"/>
</m>
<m k="boundaryType" v="2">
<!--标线-->
<m k="markType" v="0|1|4|5|6|7|8">
@ -2072,22 +2079,22 @@
<!--其他|实线-->
<m k="markColor" v="1">
<line dasharray="12,6" repeat-start="0" stroke="#ffffff" width="0.1"/>
<line dasharray="5,5" repeat-start="0" stroke="#ffffff" width="0.1"/>
</m>
<m k="markColor" v="2">
<line dasharray="12,6" repeat-start="0" stroke="#eccc68" width="0.1"/>
<line dasharray="5,5" repeat-start="0" stroke="#eccc68" width="0.1"/>
</m>
<m k="markColor" v="6">
<line dasharray="12,6" repeat-start="0" stroke="#0000ff" width="0.1"/>
<line dasharray="5,5" repeat-start="0" stroke="#0000ff" width="0.1"/>
</m>
<m k="markColor" v="7">
<line dasharray="12,6" repeat-start="0" stroke="#00ff00" width="0.1"/>
<line dasharray="5,5" repeat-start="0" stroke="#00ff00" width="0.1"/>
</m>
<m k="markColor" v="0|9">
<line dasharray="12,6" repeat-start="0" stroke="#8e44ad" width="0.1"/>
<line dasharray="5,5" repeat-start="0" stroke="#8e44ad" width="0.1"/>
</m>
</m>
@ -2097,10 +2104,6 @@
<m k="boundaryType" v="0|3|4|5|6|7|8|9">
<line stroke="#ffffff" use="boundaryType" />
</m>
<!--只区分虚线与实线-->
<m k="boundaryType" v="1">
<line dasharray="12,6" repeat-start="0" stroke="#ffffff" width="0.1"/>
</m>
</m>
<!--常规点限速-->