① 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;
}
}
}
② java 如何根据一个给定的经纬度(坐标)计算出List<经纬度>中坐标点较近的一部分坐标
使用第三方jar包 jts包 例子如下面
//一个面所包含的经纬度(标准的经纬*3600000)
String str = "POLYGON ((419164412 143703543, 419164481 143702737, 419164494 143702527,419164412 143703543))";
WKTReader wkt = new WKTReader();
Geometry geojudge1 = wkt.read(str);
int xpoi = 419164481;
int ypoi = 143702737;
Geometry geojudge2 = wkt.read("POINT(" + xpoi + " " + ypoi + "))");
if(geojudge1.intersects(geojudge2)) {
System.out.println("xpoi、ypoi 在这个面里");
}
ps:在构成一个面的时候,第一个点的经纬度一定要与最后一个点的经纬度相同。否则会报错误:java.lang.IllegalArgumentException: points must form a closed linestring
③ java类中怎么根据经纬度获取地址
思路是:通过传入地址作为参数拼接url调用网络地图,然后解析返回的页面,提取经纬度坐标。
以下为具体步骤
1、修改excel表中的属性名(方便后面用查询读取)然后倒入到数据库。
2、代码实现
④ java怎么调用百度地图api得到动态经纬度有demo最好,多谢
经纬度不是通过网络地图获得的,而是通过移动设备自身的GPS得到的
不过想要在GPS坐标在网络地图上显示出正确的地理位置,需要调用的火星坐标转换接口:
http://api.map..com/ag/coord/convert?from=0&to=4&x=121.44xxxx&y=31.22yyyy(xxxx、yyyy涉及隐私不能完全给出)。这个接口会返回转换后的火星坐标地址,BASE64编码的,可以进行解码。然后把火星坐标地址传到地图中就行了