From a3b05960fe629e9006b45d61618b01f724e757fd Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 19 十二月 2025 17:41:08 +0800
Subject: [PATCH] 美化了地块管理的排版
---
src/bianjie/bianjieguihua2.java | 37 ++++++++++++++++++++++++++++++++++---
1 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/src/bianjie/bianjieguihua2.java b/src/bianjie/bianjieguihua2.java
index bb6e290..0129d75 100644
--- a/src/bianjie/bianjieguihua2.java
+++ b/src/bianjie/bianjieguihua2.java
@@ -34,9 +34,30 @@
double baseLat = parseDMToDecimal(baseParts[0], baseParts[1]);
double baseLon = parseDMToDecimal(baseParts[2], baseParts[3]);
- // 灏咰oordinate鍒楄〃杞崲涓哄眬閮ㄥ潗鏍囩郴鍧愭爣
- List<BoundaryAlgorithm.Coordinate> localCoordinates =
- convertToLocalCoordinates(coordinates, baseLat, baseLon);
+ // 灏咰oordinate鍒楄〃杞崲涓哄眬閮ㄥ潗鏍囩郴鍧愭爣
+ List<BoundaryAlgorithm.Coordinate> localCoordinates =
+ convertToLocalCoordinates(coordinates, baseLat, baseLon);
+
+ // 涓夎褰㈠皬鍖哄煙鐗规畩澶勭悊锛岄伩鍏嶈繃搴︽彃鍊煎鑷寸偣鏁版墿澧�
+ if (localCoordinates.size() == 3) {
+ double triangleArea = calculatePolygonArea(localCoordinates);
+ double trianglePerimeter = calculatePerimeter(localCoordinates);
+
+ System.out.println("妫�娴嬪埌涓夎褰㈣竟鐣岋紝闈㈢Н=" + String.format("%.2f", triangleArea) +
+ "m虏, 鍛ㄩ暱=" + String.format("%.2f", trianglePerimeter) + "m");
+
+ if (triangleArea < 100.0 || trianglePerimeter < 30.0) {
+ System.out.println("灏忎笁瑙掑舰锛岃烦杩囨彃鍊间紭鍖�");
+ BoundaryAlgorithm.Coordinate firstPoint = localCoordinates.get(0);
+ List<BoundaryAlgorithm.Coordinate> trianglePoints = new ArrayList<>(localCoordinates);
+ trianglePoints.add(new BoundaryAlgorithm.Coordinate(
+ firstPoint.x,
+ firstPoint.y,
+ firstPoint.lat,
+ firstPoint.lon));
+ return convertBoundaryPointsToString(trianglePoints);
+ }
+ }
// 鍒涘缓绠楁硶瀹炰緥
BoundaryAlgorithm algorithm = new BoundaryAlgorithm();
@@ -264,6 +285,16 @@
return Math.abs(area) / 2.0;
}
+
+ private static double calculatePerimeter(List<BoundaryAlgorithm.Coordinate> points) {
+ if (points == null || points.size() != 3) {
+ return 0.0;
+ }
+ double d1 = calculateDistance(points.get(0), points.get(1));
+ double d2 = calculateDistance(points.get(1), points.get(2));
+ double d3 = calculateDistance(points.get(2), points.get(0));
+ return d1 + d2 + d3;
+ }
// ============ 鍏朵粬鏂规硶淇濇寔涓嶅彉 ============
--
Gitblit v1.10.0