merge code
This commit is contained in:
parent
311823cc6a
commit
061aca96ab
@ -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,
|
||||
|
@ -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>()
|
||||
|
@ -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="小标题">
|
||||
|
@ -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>
|
||||
|
||||
<!--常规点限速-->
|
||||
|
Loading…
x
Reference in New Issue
Block a user