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(