当前位置:首页 » 编程语言 » java经纬度距离

java经纬度距离

发布时间: 2025-04-25 02:26:49

java 经纬度转换米

在经线上,相差一纬度约为111km ,因此100m(0.1KM)在经线上对应约为0.1/111=0.0009度,这个度数和纬度没有关系


在纬线上,相差一经度约为111cosα(α为该纬线的纬度)因此100m(0.1KM)在该纬线上对应约为0.1/(111*cos23.14)=0.0009797度,这个度数和纬度有关,


如果要知道经纬度差和距离差的换算规律,请查阅连接中的回答。

http://..com/question/711399588905395965.html?oldq=1



⑵ 求java代码,手机获取当前GPS的经纬度。

记得我前几天发过一个类似的代码如下(适用安卓)

importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.location.*;
importandroid.content.*;
importandroid.util.Log;
importandroid.widget.TextView;

istener{
LocationManagerlocman;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

locman=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
}

@Override
protectedvoidonResume(){
if(locman!=null){
locman.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,this);
}
super.onResume();
}

@Override
protectedvoidonPause(){
if(locman!=null){
locman.removeUpdates(this);
}
super.onPause();
}

@Override
publicvoidonLocationChanged(Locationlocation){
TextViewtextView1=(TextView)findViewById(R.id.textView1);
textView1.setText("Latitude:Longitude-"
+String.valueOf(location.getLatitude())+":"+String.valueOf(location.getLongitude()));

TextViewtextView2=(TextView)findViewById(R.id.textView2);
textView2.setText(String.valueOf(location.getTime()));


Log.v("----------","----------");
Log.v("Latitude",String.valueOf(location.getLatitude()));
Log.v("Longitude",String.valueOf(location.getLongitude()));
Log.v("Accuracy",String.valueOf(location.getAccuracy()));
Log.v("Altitude",String.valueOf(location.getAltitude()));
Log.v("Time",String.valueOf(location.getTime()));
Log.v("Speed",String.valueOf(location.getSpeed()));
Log.v("Bearing",String.valueOf(location.getBearing()));
}

@Override
publicvoidonProviderDisabled(Stringprovider){

}

@Override
publicvoidonProviderEnabled(Stringprovider){
}

@Override
publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){
switch(status){
caseLocationProvider.AVAILABLE:
Log.v("Status","AVAILABLE");
break;
caseLocationProvider.OUT_OF_SERVICE:
Log.v("Status","OUT_OF_SERVICE");
break;
caseLocationProvider.TEMPORARILY_UNAVAILABLE:
Log.v("Status","TEMPORARILY_UNAVAILABLE");
break;

}
}
}

之前的提问链接

http://..com/question/426245883846255372

⑶ 如何使用java和百度地图api 得到两点之间的路程(驾车行驶距离)

获取到两点的经纬度,再调用网络地图的api计算。我记得,有一个计算距离的api.

<scripttype="text/javascript">
//网络地图API功能
varmap=newBMap.Map("allmap");
map.centerAndZoom("重庆",12);//初始化地图,设置城市和地图级别。
varpointA=newBMap.Point(106.486654,29.490295);//创建点坐标A--大渡口区
varpointB=newBMap.Point(106.581515,29.615467);//创建点坐标B--江北区
alert('从大渡口区到江北区的距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+'米。');//获取两点距离,保留小数点后两位
varpolyline=newBMap.Polyline([pointA,pointB],{strokeColor:"blue",strokeWeight:6,strokeOpacity:0.5});//定义折线
map.addOverlay(polyline);//添加折线到地图上
</script>

⑷ JAVA,已知当前经纬度和距离,计算符合距离条件的经度最大值、最小值和纬度的最大值、最小值。

//拿走不谢
private final static double R = 6370996.81;
private final static double PI = 3.14159265;
private final static double RAD = Math.PI / 180.0;
/// <summary>
/// 根据提供的经度和纬度、以及半径,取得此半径内的最大最小经纬度
/// </summary>
/// <param name="lat">纬度</param>
/// <param name="lon">经度</param>
/// <param name="rais">半径(米)</param>
/// <returns></returns>
public static double[] GetAround(double lat, double lon, int rais)
{

Double latitude = lat;
Double longitude = lon;

Double degree = (24901 * 1609) / 360.0;
double raisMile = rais;

Double dpmLat = 1 / degree;
Double radiusLat = dpmLat * raisMile;
Double minLat = latitude - radiusLat;
Double maxLat = latitude + radiusLat;

Double mpdLng = degree * Math.cos(latitude * (PI / 180));
Double dpmLng = 1 / mpdLng;
Double radiusLng = dpmLng * raisMile;
Double minLng = longitude - radiusLng;
Double maxLng = longitude + radiusLng;
return new double[] { minLat, minLng, maxLat, maxLng };
}

/// <summary>
/// 根据提供的两个经纬度计算距离(米)
/// </summary>
/// <param name="lng1">经度1</param>
/// <param name="lat1">纬度1</param>
/// <param name="lng2">经度2</param>
/// <param name="lat2">纬度2</param>
/// <returns></returns>
public static double GetDistance(double lng1, double lat1, double lng2, double lat2)
{
double radLat1 = lat1 * RAD;
double radLat2 = lat2 * RAD;
double a = radLat1 - radLat2;
double b = (lng1 - lng2) * RAD;
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 * R;
s = Math.round(s * 10000) / 10000;
return s;
}

热点内容
这是什么狗上传图片 发布:2025-05-10 12:02:59 浏览:121
教小朋友编程 发布:2025-05-10 12:01:29 浏览:635
qq号怎么申请账号和密码忘了怎么办啊 发布:2025-05-10 12:00:42 浏览:200
油冷冰箱压缩机 发布:2025-05-10 12:00:40 浏览:898
四川新社保卡密码是多少 发布:2025-05-10 11:56:06 浏览:764
数据库沉余 发布:2025-05-10 11:38:37 浏览:67
编译器的结果是什么语言 发布:2025-05-10 11:10:32 浏览:146
快手跑金脚本 发布:2025-05-10 11:10:29 浏览:360
pl0语言编译器分析实验 发布:2025-05-10 11:10:22 浏览:25
湖南外网ftp服务器租用云主机 发布:2025-05-10 10:59:19 浏览:761