重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

怎么利用JAVA距离代码 java两点间距离代码

用java写:求地球上任意两个点之间的距离,知道这两个点的经纬度

距离可以用r*arccos[cos(y1)*cos(y2)*cos(x1x2)+sin(y1)*sin(y2)]来算

10多年的丰泽网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整丰泽建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“丰泽网站设计”,“丰泽网站推广”以来,每个客户项目都认真落实执行。

r是地球半径6370km,x是经度,y是纬度

注意角度单位的转换。Math类里的sin和cos函数的参数是以弧度为单位的角度,所以x1、x2、y1、y2要用弧度表示,但一般经纬度都是用角度表示(如X1=120 东经120度)就要化成弧度(x1*Pi/180)

而acos函数返回值正好是以弧度为单位的,刚好符合要求

如果你的代码里的lat1、lat2、lon1、lon2单位是角度,可以这么改

double radius=6371000;

double distance=radius*Math.acos((Math.cos(lat2*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.cos(lon1*Math.PI/180-lon2*Math.PI/180)+Math.sin(lat1*Math.PI/180)*Math.sin(lat2*Math.PI/180)));

我算出来是903.9千米

java 求两点间距离的问题

两维空间里,两点间的距离公式是L = sqrt((x1-x2)^2+(y1-y2)^2);

多维空间的公式照推。

假设文件中数据如下:

3

2,5,6

6,8,5

则对应的代码如下:

BufferedReader reader = new BufferedReader(new FileReader("C:/test.txt"));

//获取维数

String s1 = reader.readLine();

num = Integer.parseInt(s1);

//获取第一个坐标的信息,将其坐标信息保存在数组中

String s2 = reader.readLine();

String[]str2 = s2.split(",");

int p1[] =new int[num];

for(int i=0;inum;i++) {

p1[i] = Integer.parseInt(str2[i]);

}

//获取第二个坐标的信息,同上,略过

……

//将对应坐标之差保存到另外一个数组

int a []=new int[num];

for(int i = 0;inum;i++)

a[i] = p1[i]-p2[i];

//求这个数组各元素的平方和

int sum = 0;

for(int i=0;inum;i++) {

sum += a[i]*a[i];

}

求距离

int L = Math.sqrt(sum);

以上代码直接在浏览器中完成,可能会有编码问题,楼主细察

用Java代码求距离生日还有多少天?

package com.example.time.test;

import com.example.time.Utils.DateUtil;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

/*

*@description:

*@author jiafeng

*@date 2019/12/6 0006 14:28

*/

public class brithday {

public static final String DATE_FORMAT = "yyyy-MM-dd";

public static void main(String[] args) {

String brithday = "12-07";

System.out.println(getBrithday(brithday));

}

public static int getBrithday(String brithday){

String dataOne = String.valueOf(getNowYear())+"-"+brithday;

String dataTwo = String.valueOf(getNowYear()+1)+"-"+brithday;

Date birthdayOne = DateUtil.parse(dataOne,DATE_FORMAT);

Date birthdayTwo = DateUtil.parse(dataTwo,DATE_FORMAT);

int n = 0;

if (birthdayOne.before(new Date())){

n = getIntervalDay(new Date(),birthdayTwo);

}else {

n = getIntervalDay(new Date(),birthdayOne);

}

return n;

}

/**

* 获取今年是哪一年

* @return

*/

public static Integer getNowYear(){

Date date = new Date();

GregorianCalendar gc=(GregorianCalendar) Calendar.getInstance();

gc.setTime(date);

return Integer.valueOf(gc.get(1));

}

/**

* 获取两个日期之间间隔的天数

* @author sunyy

* @return

*/

public static int getIntervalDay(Date start_date, Date end_date) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try {

start_date = sdf.parse(sdf.format(start_date));

end_date = sdf.parse(sdf.format(end_date));

} catch (ParseException e) {

e.printStackTrace();

}

Calendar cal = Calendar.getInstance();

cal.setTime(start_date);

long time1 = cal.getTimeInMillis();

cal.setTime(end_date);

long time2 = cal.getTimeInMillis();

long between_days = (time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

如何根据经纬度计算距离的java代码

思路是:通过传入地址作为参数拼接url调用百度地图,然后解析返回的页面,提取经纬度坐标。以下为具体步骤1、修改excel表中的属性名(方便后面用查询读取)然后倒入到数据库。2、代码实现

java,坐标,求距离

int x1 = 0, y1 = 0;

int x2 = 1, y2 = 1;

double d = Math.sqrt(Math.pow((x1 - x2), 2) + Math.pow((y1 - y2), 2));

System.out.println(d);

用java采用面向对象思想设计求两点间的距离,求代码

import java.util.Scanner;

public class Demo

{

public static void main(String[] args)

{

Scanner sc=new Scanner(System.in);

Point p1,p2;

System.out.println("请输入第1个点的x、y坐标:");

p1=new Point(sc.nextDouble(),sc.nextDouble());

System.out.println("请输入第2个点的x、y坐标:");

p2=new Point(sc.nextDouble(),sc.nextDouble());

System.out.println("点"+p1+"与点"+p2+"的距离是"+p1.distance(p2));

}

}

class Point

{

Point(double x,double y)

{

this.x=x;

this.y=y;

}

public String toString()

{

return "("+x+","+y+")";

}

double distance(Point p)

{

return Math.sqrt(Math.pow(this.x-p.x,2)+Math.pow(this.y-p.y,2));

}

private double x,y;

}


分享名称:怎么利用JAVA距离代码 java两点间距离代码
网址分享:http://cqcxhl.com/article/dooisgg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP