merge code
This commit is contained in:
parent
311823cc6a
commit
061aca96ab
@ -88,6 +88,69 @@ class RealmOperateHelper() {
|
|||||||
return result
|
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(
|
suspend fun captureTaskLink(
|
||||||
point: GeoPoint,
|
point: GeoPoint,
|
||||||
buffer: Double = DEFAULT_BUFFER,
|
buffer: Double = DEFAULT_BUFFER,
|
||||||
|
@ -475,11 +475,14 @@ class MainViewModel @Inject constructor(
|
|||||||
captureLinkState = true
|
captureLinkState = true
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
val linkList = realmOperateHelper.queryLink(
|
/* val linkList = realmOperateHelper.queryLink(
|
||||||
point = point,
|
point = point,
|
||||||
)
|
)*/
|
||||||
|
|
||||||
|
val linkList = realmOperateHelper.queryLine(point = point, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE")
|
||||||
|
|
||||||
var hisRoadName = false
|
var hisRoadName = false
|
||||||
|
|
||||||
if (linkList.isNotEmpty()) {
|
if (linkList.isNotEmpty()) {
|
||||||
//看板数据
|
//看板数据
|
||||||
val signList = mutableListOf<SignBean>()
|
val signList = mutableListOf<SignBean>()
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/personal_center_menu_version"
|
android:id="@+id/personal_center_menu_version"
|
||||||
android:icon="@drawable/ic_baseline_layers_24"
|
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>
|
||||||
<group android:checkableBehavior="single">
|
<group android:checkableBehavior="single">
|
||||||
<item android:title="小标题">
|
<item android:title="小标题">
|
||||||
|
@ -2036,13 +2036,20 @@
|
|||||||
</m>
|
</m>
|
||||||
<m k="boundaryType" v="1">
|
<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>
|
</m>
|
||||||
|
|
||||||
<!-- 车道边界类型 -->
|
<!-- 车道边界类型 -->
|
||||||
<m v="OMDB_LANE_MARK_BOUNDARYTYPE">
|
<m v="OMDB_LANE_MARK_BOUNDARYTYPE">
|
||||||
|
|
||||||
<outline-layer id="boundary" stroke="#ffffff" width="0.1" />
|
<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="boundaryType" v="2">
|
||||||
<!--标线-->
|
<!--标线-->
|
||||||
<m k="markType" v="0|1|4|5|6|7|8">
|
<m k="markType" v="0|1|4|5|6|7|8">
|
||||||
@ -2072,22 +2079,22 @@
|
|||||||
|
|
||||||
<!--其他|实线-->
|
<!--其他|实线-->
|
||||||
<m k="markColor" v="1">
|
<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>
|
||||||
<m k="markColor" v="2">
|
<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>
|
||||||
|
|
||||||
<m k="markColor" v="6">
|
<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>
|
||||||
|
|
||||||
<m k="markColor" v="7">
|
<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>
|
||||||
|
|
||||||
<m k="markColor" v="0|9">
|
<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>
|
||||||
|
|
||||||
</m>
|
</m>
|
||||||
@ -2097,10 +2104,6 @@
|
|||||||
<m k="boundaryType" v="0|3|4|5|6|7|8|9">
|
<m k="boundaryType" v="0|3|4|5|6|7|8|9">
|
||||||
<line stroke="#ffffff" use="boundaryType" />
|
<line stroke="#ffffff" use="boundaryType" />
|
||||||
</m>
|
</m>
|
||||||
<!--只区分虚线与实线-->
|
|
||||||
<m k="boundaryType" v="1">
|
|
||||||
<line dasharray="12,6" repeat-start="0" stroke="#ffffff" width="0.1"/>
|
|
||||||
</m>
|
|
||||||
</m>
|
</m>
|
||||||
|
|
||||||
<!--常规点限速-->
|
<!--常规点限速-->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user