From af3cd2b4641335f5697e334b56b9c49548834c4d Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Thu, 21 Sep 2023 10:12:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BA=BF=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=9A=84=E9=A2=84=E8=AD=A6=E8=A6=81=E7=B4=A0=E8=B7=9D=E7=A6=BB?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/navinfo/omqs/db/RealmOperateHelper.kt | 2 +- .../com/navinfo/omqs/ui/activity/map/MainViewModel.kt | 11 +++++++++-- app/src/main/java/com/navinfo/omqs/util/SignUtil.kt | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index 2360b850..a4bce026 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -65,7 +65,7 @@ class RealmOperateHelper() { val realm = getSelectTaskRealmInstance() val realmList = getSelectTaskRealmTools(RenderEntity::class.java, false) - .equalTo("table", "OMDB_RD_LINK_KIND") + .equalTo("table", DataCodeEnum.OMDB_LINK_DIRECT.name) .greaterThanOrEqualTo("tileX", xStart) .lessThanOrEqualTo("tileX", xEnd) .greaterThanOrEqualTo("tileY", yStart) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 93ca83c5..32bd3ac0 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -743,6 +743,7 @@ class MainViewModel @Inject constructor( if (linkList.isNotEmpty()) { val link = linkList[0] + val linkId = link.properties[RenderEntity.Companion.LinkTable.linkPid] //看板数据 val signList = mutableListOf() @@ -752,9 +753,14 @@ class MainViewModel @Inject constructor( if (bSelectRoad) mapController.markerHandle.addMarker(point, "selectLink") mapController.lineHandler.showLine(link.geometry) - val lineString: Geometry = GeometryTools.createGeometry(link.geometry) - val footAndDistance = GeometryTools.pointToLineDistance(point, lineString) + val linePoints = GeometryTools.getGeoPoints(link.geometry) + val direct = link.properties["direct"] + if(direct == "3"){ + linePoints.reverse() + } + + val footAndDistance = GeometryTools.pointToLineDistance(point, GeometryTools.createLineString(linePoints)) linePoints.add( footAndDistance.footIndex + 1, GeoPoint( @@ -762,6 +768,7 @@ class MainViewModel @Inject constructor( footAndDistance.getCoordinate(0).x ) ) + val newLineString = GeometryTools.createLineString(linePoints) linkId?.let { var elementList = realmOperateHelper.queryLinkByLinkPid(it) diff --git a/app/src/main/java/com/navinfo/omqs/util/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/util/SignUtil.kt index 12cc49f5..ff709d62 100644 --- a/app/src/main/java/com/navinfo/omqs/util/SignUtil.kt +++ b/app/src/main/java/com/navinfo/omqs/util/SignUtil.kt @@ -1631,8 +1631,8 @@ class SignUtil { } else if (itemGeometry is LineString) { val itemFoot = GeometryTools.pointToLineDistance( GeoPoint( - lineString.coordinates[0].y, - lineString.coordinates[0].x + lineString.coordinates[lineString.coordinates.size-1].y, + lineString.coordinates[lineString.coordinates.size-1].x ), lineString ) var dis = GeometryTools.getDistance(