我的代码是这样开始的:
public static void main(String[] args) {
//Intro
System.out.print("This program calculates the distance between two cities, given their respective latitude and longitude points.");
System.out.println();
//Get values for Latitude and Longitude
Scanner console = new Scanner(System.in);
double lat1 = getCoordinates(" latitude 1: ", console); // Input lat1
double long1 = getCoordinates(" longitude 1: ", console); // Input long1
double lat2 = getCoordinates(" latitude 2: ", console); // Input lat2
double long2 = getCoordinates(" longitude 2: ", console); // Input long2
public static double getCoordinates(String message, Scanner scan)
{
System.out.print("Please enter" + message);
int degrees = scan.nextInt();
int minutes = scan.nextInt();
return Math.toRadians(degrees + (minutes / 60.0));
}
//Calculate Distance
public static double finalAnswer(double lat1, double long1, double lat2, double long2) {
double radiusOfEarth = 6372.795; //radius of Earth in km
double distance = Math.acos(Math.sin(lat1)*Math.sin(lat2) +
Math.cos(lat1)*Math.cos(lat2) *
Math.cos(long2-long1)) * radiusOfEarth;
return distance;
System.out.print("The distance between the two cities is approximately " + distance + "km");
}
}
我需要能够输入每个纬度和经度点的度和分钟(度,分钟)。然而,当我试图在代码的最后一行打印“距离”时,出现了编译错误。此外,Eclipse告诉我没有使用lat1、long1、lat2和long2(“获取纬度和经度值”部分)?有人能帮我打印距离吗?非常感谢。
以下代码可以计算给定经度和纬度的位置之间的距离。它使用哈弗森公式
import java.util.Scanner;
class haversine {
double long1;
double lat1;
double long2;
double lat2;
haversine (Double long1, Double lat1, Double long2, Double lat2) {
this.long1 = long1;
this.lat1 = lat1;
this.long2 = long2;
this.lat2 = lat2;
}
double execute() {
return Math.pow(Math.sin((lat2 - lat1)/2) ,2) + Math.cos(long1) * Math.cos(long2) * Math.pow(Math.sin((long2 - long1)/2) ,2);
}
double disCalc (Double exe) {
Double radius_of_earth = 6378.1;
return 2 * radius_of_earth * Math.asin(Math.pow(exe, 2));
}
}
class test28 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("longitude and latitude of home : ");
double long1 = scan.nextDouble();
double lat1 = scan.nextDouble();
System.out.println("longitude and latitude of travel destination : ");
double long2 = scan.nextDouble();
double lat2 = scan.nextDouble();
haversine obj = new haversine(long1, lat1, long2, lat2);
double exe = obj.execute();
double distance = obj.disCalc(exe);
System.out.println("The Distance is : " + distance);
scan.close();
}
}
你能通过这些链接找出两个纬度和经度之间的距离吗
http://www.codeproject.com/Articles/12269/Distance-between-locations-using-latitude-and-long
或者还有另一个想法,你可以尝试使用谷歌地图API通过纬度和经度找出两个城市之间的距离
希望这有帮助
在代码中:
..
return distance;
System.out.print("The distance between the two cities is approximately "
+ distance + "km");
..
将此更改为:
..
System.out.print("The distance between the two cities is approximately "
+ distance + "km");
return distance;
..
下面是一个用Javascript实现的哈弗森公式,用于计算距离。(应易于翻译为Java。)
计算“大圆”距离的公式:
坐标为{lat1,lon1}和{lat2,lon2}的两点之间的大圆距离d由下式给出:
d=acos(sin(lat1)*sin(lat2)cos(lat1)*cos(lat2)*cos(lon1-lon2))
一个数学上等效的公式是,短距离舍入误差较小:
d=2*asin(sqrt((sin((lat1-lat2)/2))^2 cos(lat1)cos(lat2)(sin((lon1-lon2)/2))^2)
问题内容: 我有一张表,上面有: 城市纬度经度 而且我需要一个sql查询来知道所有城市都距离纽约100英里。 问题答案: 也许这对您有帮助:http : //www.scribd.com/doc/2569355/Geo-Distance-Search-with- MySQL 这是一个不错的介绍。或只是google for ,您会发现一些教程。 如果有可能并且想让它变得更简单,请直接使用支持距离查询
问题内容: 我希望能够估算两个(纬度,经度)点之间的距离。我想下冲,因为这将用于A 图形搜索,并且我希望它能 快速* 。这些点最多相距800公里。 问题答案: Python中Haversine公式的答案(两个GPS点之间的轴承和距离)提供了可以回答您问题的Python实现。 使用下面的实现,我在一台旧笔记本电脑上 不到1秒的 时间内 执行了100,000次迭代 。我认为对于您来说,这应该足够了。但
问题内容: 目前,我在mysql数据库中的位置不足一百万,所有位置都包含经度和纬度信息。 我试图通过查询找到一个点和许多其他点之间的距离。它并没有我想要的那么快,尤其是每秒100次以上的命中。 是否有更快的查询,或者可能是比mysql更快的系统?我正在使用此查询: 注意:提供的距离以 英里为单位 。如果您需要 公里 ,请使用代替。 问题答案: 使用表中数据类型的值创建点。从Mysql 5.7.5开
我想制作一个android应用程序,它可以提供城市中两个区域之间的距离。 用户将有两个输入字段,必须在其中输入两个区域名称,以便查找距离。 在他输入区域名称后。我的应用程序应该显示距离。 我应该如何实现这一点?
问题内容: 嗨,我有下表 现在我想获得两点之间的距离。假设一个用户有一个城市3,一个用户有一个城市7。我的情况是一个用户有一个城市和纬度,纬度正在搜索其他用户与城市的距离。例如,拥有城市3的用户正在搜索。他想得到其他城市的用户的距离是7。我已搜索到以下查询 据我所知,此查询查找从一个点到所有其他点的距离。现在我想获得一个点到另一点的距离。 任何指导方针将不胜感激。 问题答案: 我认为您的问题是您具
问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: MySQL纬度和经度表设置 我知道这个问题可能已经被问过很多遍了,我已经进行了很多研究,并且在某些具体问题上需要帮助。 假设我有一个表单,用户输入了经度和纬度,并且我有一个数据库,该数据库的表包含经度和纬度,我将如何在该表中搜索半径15英里以内的一个或多个点? 问题答案: 您可以使用公式来计算两点之间的距离。例如: 您还可以执行