大橙子网站建设,新征程启航

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

java代码算经纬度误差 经纬度差值

java经度纬度计算

一般假设小块区域是平面。

为浦东等地区用户提供了全套网页设计制作服务,及浦东网站建设行业解决方案。主营业务为网站建设、网站设计、浦东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

先通过

纬度计算当地两个经度之间的距离(不同纬度上,不同经度距离是不一样的)

再计算两个经度间的距离。然后反切就可以算出角度。

求JAVA经纬度转换代码

由于键盘上没有 ° 键,所以我在程序中把它换成 * 键了。

运行下面程序,从控制台输入 40582974 ,回车 ,输出结果:22*32.7658′

输入:57335948

输出:31*51.1983'

import java.math.BigDecimal;

import java.util.Scanner;

public class LatitudeTransform {

public static void main(String[] args) {

Scanner sca = new Scanner(System.in);

String in = sca.nextLine();

//将控制台接收到的输入转成数字

long num = Long.parseLong(in);

//利用整除舍弃余数得到度数值

long du = (num / 30000) / 60;

//将控制台接收到的数值除以30000,得到度和分的混合结果,再对60取余,得到分的部分

BigDecimal fen = new BigDecimal(num).divide(new BigDecimal(30000), 4, BigDecimal.ROUND_HALF_UP).remainder(

new BigDecimal(60));

System.out.println(du + "*" + fen + "'");

}

}

下面的部分是,在控制台输入22°32.7658′ ,回车得到40582974。开始的时候读你的问题理解反了,所以先写的这个,也给你吧,要是没用就算了~呵呵。

import java.util.Scanner;

public class LatitudeTransform {

public static void main(String[] args) {

Scanner sca = new Scanner(System.in);

String in = sca.nextLine();

String result = transform(in);

System.out.println(result);

}

private static String transform(String in) {

//将输入的字符串分成两截,分别为度数du_string,分数fen_string

String du_string = in.substring(0, in.indexOf("*"));

//substring方法两个参数遵循规则"前包含后不包含",例,”1234“.substring(0,2)返回的结果是index为0到1的子串,即"12"

String fen_string = in.substring(in.indexOf("*") + 1, in.indexOf("'"));

double du = Double.parseDouble(du_string);

double fen = Double.parseDouble(fen_string);

Long result = (long) ((du * 60 + fen) * 30000);

return result.toString();

}

}

java代码实现如何获取当前经纬度?

安卓的话可以用GPS取。

import android.app.Activity;

import android.os.Bundle;

import android.location.*;

import android.content.*;

import android.util.Log;

import android.widget.TextView;

public class GPSLocationListenActivity extends Activity implements LocationListener {

LocationManager locman;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

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

}

@Override

protected void onResume(){

if (locman != null){

locman.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,0,this);          

}

super.onResume();

}

@Override

protected void onPause(){

if (locman != null){

locman.removeUpdates(this);

}

super.onPause();

}

@Override

public void onLocationChanged(Location location){

TextView textView1 = (TextView)findViewById(R.id.textView1);

textView1.setText("Latitude:Longitude - "

+String.valueOf(location.getLatitude()) +":"+String.valueOf(location.getLongitude()));

TextView textView2 = (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

public void onProviderDisabled(String provider){

}

@Override

public void onProviderEnabled(String provider){

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras){

switch(status){

case LocationProvider.AVAILABLE:

Log.v("Status","AVAILABLE");

break;

case LocationProvider.OUT_OF_SERVICE:

Log.v("Status","OUT_OF_SERVICE");

break;

case  LocationProvider.TEMPORARILY_UNAVAILABLE:

Log.v("Status","TEMPORARILY_UNAVAILABLE");

break;

}

}

}

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

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


当前标题:java代码算经纬度误差 经纬度差值
分享网址:http://dzwzjz.com/article/docgicg.html
在线咨询
服务热线
服务热线:028-86922220
TOP