我已经得到了代码来获取地址。但我不知道有一个真正的LATITUDE和LONGITUDE。 如何更改我的代码?这样我就可以使用真正的代码了。 Thanks.ThanksThanksThanksThanksThanksThanksThanks
package ie.wit.mybook;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import com.google.android.gms.maps.GoogleMap;
import ie.wit.mybook.*;
import android.app.Activity;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class AdressGet extends Activity {
double LATITUDE=52.7;
double LONGITUDE=-7.12;
GPSHelper mylo;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.adressget);
TextView myLatitude = (TextView)findViewById(R.id.mylatitude);
TextView myLongitude = (TextView)findViewById(R.id.mylongitude);
TextView myAddress = (TextView)findViewById(R.id.myaddress);
myLatitude.setText("Latitude: " + String.valueOf(LATITUDE));
myLongitude.setText("Longitude: " + String.valueOf(LONGITUDE));
Geocoder geocoder = new Geocoder(this, Locale.ENGLISH);
try {
List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
if(addresses != null) {
Address returnedAddress = addresses.get(0);
StringBuilder strReturnedAddress = new StringBuilder("Address:\n");
for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
}
myAddress.setText(strReturnedAddress.toString());
}
else{
myAddress.setText("No Address returned!");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
myAddress.setText("Canont get Address!");
}
}
}
答案 0 :(得分:1)
如果您需要获得真实坐标,则需要使用LocationListener
。试试这个:http://www.vogella.com/tutorials/AndroidLocationAPI/article.html
答案 1 :(得分:0)
非常快速的代码,没有太多时间:)
locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
providers = locationManager.getProviders(true);
//Choose whatever provider (GPS / Network) you want, in this case i'll go ahead and choose network, but build in a Check If GPS / Network is enabled statement
List<String>String provider = providers.get(1);
Location location = locationManager.getLastKnownLocation(provider);
答案 2 :(得分:0)
第二个选项是使用此处所述的当前Play服务API以使其完整,但ThomQs答案更容易。 http://developer.android.com/training/location/retrieve-current.html
答案 3 :(得分:0)
此处方法:
// Get the last known location from all providers
// return best reading is as accurate as minAccuracy and
// was taken no longer then minTime milliseconds ago
private Location bestLastKnownLocation(float minAccuracy, long minTime) {
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Location bestResult = null;
float bestAccuracy = Float.MAX_VALUE;
long bestTime = Long.MIN_VALUE;
List<String> matchingProviders = mLocationManager.getAllProviders();
for (String provider : matchingProviders) {
Location location = mLocationManager.getLastKnownLocation(provider);
if (location != null) {
float accuracy = location.getAccuracy();
long time = location.getTime();
if (accuracy < bestAccuracy) {
bestResult = location;
bestAccuracy = accuracy;
bestTime = time;
}
}
}
// Return best reading or null
if (bestAccuracy > minAccuracy || bestTime < minTime) {
return null;
} else {
return bestResult;
}
}
然后,使用Location
对象,使用
location.getLongitude();
和
location.getLatitude();