我得到了纬度和经度使用位置。 并保存在
private double mLatitude;
private double mLongitude;.
mLatitude = location.getLatitude();
mLongitude =location.getLongitude();
locationMg =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setSpeedRequired(false);
criteria.setCostAllowed(true);
String bestProvider = locationMg.getBestProvider(criteria, true);
Location location = locationMg.getLastKnownLocation(bestProvider);
if(location != null){
Toast.makeText(this,"Latitude" +location.getLatitude()+"\n"+"Longitude"+location.getLongitude(), 0).show();
mLatitude = location.getLatitude();
mLongitude = location.getLongitude();
}
和
private String url ="http://api.openweathermap.org/data/2.5/weather?lat="+mLatitude+"&lon="+mLongitude+"&mode=xml";
我在运行此代码后看到了LogCat。 但是,经度和纬度的值为0.0。 为什么? 是因为字符串类型url ?????????????? 而纬度和经度只应输入两倍。 更改网址?
帮助。 我不知道该怎么做。
答案 0 :(得分:0)
来自documention
If the provider is currently disabled, null is returned from getLastKnownLocation()
检查location对象是否为null。
使用requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
答案 1 :(得分:-1)
在位置已知之后,您可能没有定义网址。把它放在这里:
if(location != null){
Toast.makeText(this,"Latitude" +location.getLatitude()+"\n"+"Longitude"+location.getLongitude(), 0).show();
mLatitude = location.getLatitude();
mLongitude = location.getLongitude();
url ="http://api.openweathermap.org/data/2.5/weather?lat="+mLatitude+"&lon="+mLongitude+"&mode=xml";
}