java range double_Java中的包围盒计算

不清楚你所说的“不起作用”是什么意思,但是从我所看到的代码可以得出两个输入点sw和ne。然而,它将在两极和国际日期变更线附近断裂。

产生合理外观输出的简单测试程序:

public class LatLonBoundBox {

public static class MapCoord {

final double lat;

final double lon;

public MapCoord(double lat, double lon) {

this.lat=lat;

this.lon=lon;

}

@Override

public String toString() {

return "MapCoord [lat=" + lat + ", lon=" + lon + "]";

}

}

/**

* @param args

*/

public static void main(String[] args) {

double range = 1.0;

double inLat = 51.350801;

double inLong = -0.251850;

double latrange=range/69.172;

double longrange=Math.abs(range/(Math.cos(inLat) *69.172));

double minlat=inLat-latrange;

double maxlat=inLat+latrange;

double minlon=inLong-longrange;

double maxlon=inLong+longrange;

MapCoord min = new MapCoord(minlat,minlon);

MapCoord max = new MapCoord(maxlat,maxlon);

System.out.println(min);

System.out.println(max);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java 计算两个坐标范围的代码如下: ``` import java.awt.geom.Point2D; public class Main { public static void main(String[] args) { Point2D p1 = new Point2D.Double(1, 2); Point2D p2 = new Point2D.Double(3, 4); double distance = p1.distance(p2); System.out.println("两点间距离为:" + distance); } } ``` 这段代码使用了 java.awt.geom.Point2D 类,计算了两个点 (1, 2) 和 (3, 4) 之间的欧几里得距离。 ### 回答2: 可以使用Java编程语言计算两个坐标范围的方法如下: 假设两个坐标范围分别为(range1_x1, range1_y1, range1_x2, range1_y2)和(range2_x1, range2_y1, range2_x2, range2_y2)。 首先,我们可以计算第一个坐标范围的宽度range1_width和高度range1_height,分别为range1_width = Math.abs(range1_x2 - range1_x1)和range1_height = Math.abs(range1_y2 - range1_y1)。 接下来,我们可以计算第二个坐标范围的宽度range2_width和高度range2_height,分别为range2_width = Math.abs(range2_x2 - range2_x1)和range2_height = Math.abs(range2_y2 - range2_y1)。 然后,我们可以使用条件语句判断两个范围是否重叠。如果两个范围重叠,则它们的交集宽度(intersect_width)为Math.min(range1_x2, range2_x2) - Math.max(range1_x1, range2_x1),交集高度(intersect_height)为Math.min(range1_y2, range2_y2) - Math.max(range1_y1, range2_y1)。 最后,我们可以判断交集宽度intersect_width和交集高度intersect_height是否大于0,如果大于0,则说明两个范围有交集,否则没有交集。 例如,如果第一个坐标范围为(0, 0, 5, 5),第二个坐标范围为(4, 4, 8, 8),则我们可以计算得到range1_width = 5,range1_height = 5,range2_width = 4,range2_height = 4。交集宽度为Math.min(5, 8) - Math.max(0, 4) = 5 - 4 = 1,交集高度为Math.min(5, 8) - Math.max(0, 4) = 5 - 4 = 1。由于交集宽度和交集高度都大于0,所以可以判断出两个范围有交集。 以上就是使用Java计算两个坐标范围的方法。 ### 回答3: 要计算两个坐标范围,首先需要明确坐标的类型。在Java,常用的坐标类型有经度和纬度坐标(用于地理位置)和x、y坐标(用于平面位置)。 如果是经度和纬度坐标,可以使用大圆距离公式来计算两个坐标之间的距离。根据公式,可以计算出两个坐标之间的直线距离,并将其转换为适当的单位(如米、千米等)。 如果是x、y坐标,计算两个坐标范围则需要找出最小和最大的x、y值。可以通过遍历所有坐标,找到最小和最大的x、y值,并计算出范围。范围可以用一个矩形来表示,其最小的x值对应矩形的左边界,最大的x值对应右边界,最小的y值对应下边界,最大的y值对应上边界。 上述方法适用于一般情况下的坐标计算。但在某些特殊情况下,例如计算地理位置上的坐标范围时,可能需要考虑地球曲率的影响。这时可以使用更复杂的算法来计算坐标范围。 总之,在Java计算两个坐标范围需要根据坐标类型选择相应的计算方法,并根据具体需求进行适当的转换或附加处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值