围绕地理点创建边框框。

4

我有一个地理纬度和经度(例如:39.6199,-79.9535)。如何在Java中围绕该点建立一个半径为1公里的边界框?

2个回答

8
  1. 两条经线之间的距离会根据所在的纬度线而变化。它可以计算为:

    3960 * 2 * pi /360 * cosine(latitude) 英里

  2. 两条纬线之间的距离在任何地方都是恒定的:69英里。

因此,要在地理位置周围画一个1x1英里的正方形,您应该找到与该点纬度平行的两个纬线,其距离南部和北部的距离为0.5英里。然后找到两条距西部和东部0.5英里的经线。

例如,0.5英里意味着0.5/69的纬度差异。如果给定点的纬度为39.6199,则正方形的上下两侧的纬度值分别为:36.6199+(0.5/69)36.6199-(0.5/69)


7
double latitude = location.getLatitude();
double longitude = location.getLongitude();

// 6378000 Size of the Earth (in meters)
double longitudeD = (Math.asin(1000 / (6378000 * Math.cos(Math.PI*latitude/180))))*180/Math.PI;
double latitudeD = (Math.asin((double)1000 / (double)6378000))*180/Math.PI;

double latitudeMax = latitude+(latitudeD);
double latitudeMin = latitude-(latitudeD);
double longitudeMax = longitude+(longitudeD);
double longitudeMin = longitude-(longitudeD);

1
这个边界框有多大?1公里吗? - Glen Thomas
这里的1000是指1000米,也就是1公里吗?非常感谢变量声明。 - granadaCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接