Browse Source

feat 优化管线显示

lihao1 3 years ago
parent
commit
49a3cbc4e7

+ 16 - 5
cadengine/src/main/java/cn/sagacloud/android/cadengine/FloorScene.kt

@@ -52,6 +52,7 @@ open class FloorScene : SGraphyScene() {
     var mapType: String? = "nothing"
     var choseSpace: TunableSpaceItem? = null
     var pipeLineList: ArrayList<PointF> = ArrayList()
+
     /**  正在绘制的管道 */
     val drawingPipeItemList = ArrayList<PipeLineItem>()
 
@@ -423,11 +424,21 @@ open class FloorScene : SGraphyScene() {
                         android.graphics.Point(e.x.toInt(), -e.y.toInt())
                 )
                 if (polygonContainsPoint) {
-                    space.outPaint.color = Color.rgb(0xbd, 0xe8, 0xfe)
-                    space.paint.color = Opt.spaceChoseColor
-                    mapType = "space"
-                    choseSpace = space
-                    hasChose = true
+                    if (hasChose) {
+                        if (space.calculateArea() < choseSpace!!.calculateArea()) {
+                            space.outPaint.color = Color.rgb(0xbd, 0xe8, 0xfe)
+                            space.paint.color = Opt.spaceChoseColor
+                            mapType = "space"
+                            choseSpace = space
+                            hasChose = true
+                        }
+                    } else {
+                        space.outPaint.color = Color.rgb(0xbd, 0xe8, 0xfe)
+                        space.paint.color = Opt.spaceChoseColor
+                        mapType = "space"
+                        choseSpace = space
+                        hasChose = true
+                    }
                 } else {
                     space.paint.color = Opt.spaceColor
                     space.outPaint.color = Color.rgb(0xff, 0xff, 0xff)

+ 4 - 0
cadengine/src/main/java/cn/sagacloud/android/cadengine/items/PipeLineItem.kt

@@ -78,6 +78,10 @@ class PipeLineItem(val data: PipeLine, parent: SGraphyItem? = null) : SGraphyIte
 
 
             canvas.drawPath(pipePath!!, outPaint)
+            val size = data.points!!.size - 1
+            val get = data.points!!.get(size).get(data.points!!.get(size).size - 1)
+            canvas.drawCircle(data.points!!.get(0).get(0).x, -data.points!!.get(0).get(0).y, 160f, mPaint_inner)
+            canvas.drawCircle(get.x, -get.y, 160f, mPaint_inner)
         }
     } // Function onDraw()
 }

+ 3 - 3
cadengine/src/main/java/cn/sagacloud/android/cadengine/items/TunableSpaceItem.kt

@@ -108,10 +108,10 @@ class TunableSpaceItem(val data: TunableSpace, parent: SGraphyItem? = null) : SG
      * @param latLngLines 经纬度坐标点
      * @return
      */
-    fun calculateArea(latLngLines: List<PointF>): Float {
+    fun calculateArea(): Float {
         val pointFList: MutableList<DoubleArray> = ArrayList()
-        for (i in latLngLines.indices) {
-            val latLng: PointF = latLngLines[i]
+        for (i in mPoints.indices) {
+            val latLng: PointF = mPoints[i]
             //经纬度转换成平面直角坐标系
             wGS2flat(latLng.x.toDouble(), latLng.y.toDouble())?.let { pointFList.add(it) }
         }