根据经纬度求两点间距离实现源码(java)
研究了一下Google
Map上的根据经纬度求地球表面两点间距离的实现, 用java实现了一把,对我国境内的Beijing54, Xian80,WGS84三种坐标系的空间距离计算感觉这个实现是比较准确的。当然,这里只是个人的感觉而已。。。可能我还没有遇到那种对精度要求非常严格的地方,或许,本身我这个方式就是错误的。。。呵呵。。。这里只是作个记号先。。。各位达人多多指教
package
com.geotools.test;
public class GeoUtils {
public
enum GaussSphere{
Beijing54,
Xian80,
WGS84,
}
private static double Rad(double d){
return d
* Math.PI / 180.0;
}
public double DistanceOfTwoPoints(double
lng1,double lat1,double lng2,double lat2,
GaussSphere gs){
double radLat1 = Rad(lat1);
double radLat2 = Rad(lat2);
double a = radLat1 - radLat2;
double b = Rad(lng1) -
Rad(lng2);
double s = 2 *
Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
Math.cos(radLat1) *
Math.cos(radLat2) * Math.pow(Math.sin(b/2),2)));
s = s * (gs ==
GaussSphere.WGS84 ? 6378137.0 : (gs == GaussSphere.Xian80 ? 6378140.0 :
6378245.0));
s = Math.round(s * 10000) / 10000;
return
s;
}
}
相关文档:
JAVA技巧(Java定时执行任务的实现方法)2009年02月07日 星期六 10:36定时执行任务的三种方法:
1)java.util.Timer.
2)ServletContextListener.
3)org.springframework.scheduling.timer.ScheduledTimerTask & ......
在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下.
1.从当前的工作目录中读取:
try {
BufferedReader in = new BufferedReader(new InputStreamRea ......
send mail use smtp .u can send text or html, send to many peoples if u have a email user and pwd and the smtp of the email which u use.
package org.lc.smtp;
import java.io.IOException;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mai ......
学.NET就好比和爹妈一起出门,啥事都不用愁,因为爹妈都给你操心着了。
学Java就像自己出门,你要睁大眼睛看清周围的世界,并决定你自己的方向;
必要的时候,你要脱离一切束缚,自己搞一套框架来适应特殊需求。
在Java的世界里,有着形形色色的开源产品和框架。
它们就好像你在异 ......
//写这个程序也为了纪念王江民先生……话说当年他也是写过这个类似程序
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class game extends Applet implements ActionListener{
//定义变量
int num1, num2, num3, jieguo, jilu, ......