① 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編碼的,可以進行解碼。然後把火星坐標地址傳到地圖中就行了