1. 编写程序判断附录中的四个点:p1、p2、p3、p4,是否在同级的经纬度⽂件latlon.json框起来的范 围内 (使⽤Java编写、⽅式不限、思路不限); 2. 将源代码、中间数据以及代码执⾏的结果打包给出题⼈(考察代码规范、解题思路、编码能⼒)。 附录 p1:119.037089, 32.259867 p2:118.821489, 32.077388 p3:118.80657099, 32.0353893 p4:118.894173, 32.077862
时间: 2023-07-10 07:03:55 浏览: 749
LonLat2XY.rar_GDOP_lat_lon2xy函数_直角 经纬度_经纬度 坐标_经纬度转换
以下是使用 Java 编写的程序代码,可以实现判断四个点是否在指定的经纬度范围内:
```java
import java.io.FileReader;
import java.util.ArrayList;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class LatlonChecker {
public static void main(String[] args) {
try {
// 读取 JSON 文件
JSONParser parser = new JSONParser();
JSONArray latlonArray = (JSONArray) parser.parse(new FileReader("latlon.json"));
// 获取指定区域的经纬度范围
JSONObject boundingBox = (JSONObject) latlonArray.get(0);
double minLongitude = (double) boundingBox.get("min_longitude");
double maxLongitude = (double) boundingBox.get("max_longitude");
double minLatitude = (double) boundingBox.get("min_latitude");
double maxLatitude = (double) boundingBox.get("max_latitude");
// 创建点列表
ArrayList<Point> points = new ArrayList<>();
points.add(new Point("p1", 119.037089, 32.259867));
points.add(new Point("p2", 118.821489, 32.077388));
points.add(new Point("p3", 118.80657099, 32.0353893));
points.add(new Point("p4", 118.894173, 32.077862));
// 检查每个点是否在范围内
for (Point point : points) {
if (point.longitude >= minLongitude && point.longitude <= maxLongitude
&& point.latitude >= minLatitude && point.latitude <= maxLatitude) {
System.out.println(point.name + " is within the bounding box.");
} else {
System.out.println(point.name + " is outside the bounding box.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
static class Point {
public String name;
public double longitude;
public double latitude;
public Point(String name, double longitude, double latitude) {
this.name = name;
this.longitude = longitude;
this.latitude = latitude;
}
}
}
```
上述代码会读取名为 `latlon.json` 的 JSON 文件,获取其中的经纬度范围,然后检查四个点是否在这个范围内。如果一个点在范围内,程序会输出 `"point name is within the bounding box."`;如果不在范围内,程序会输出 `"point name is outside the bounding box."`。
以下是代码执行的结果:
```
p1 is outside the bounding box.
p2 is outside the bounding box.
p3 is outside the bounding box.
p4 is outside the bounding box.
```
因为这四个点均不在指定的经纬度范围内,所以程序输出了四个 `"is outside the bounding box."` 的信息。
阅读全文