Android 如何从谷歌地图获取海拔高度
我试图得到高度,但它没有得到任何垃圾值。我已跟踪此链接:Android 如何从谷歌地图获取海拔高度,android,google-maps,Android,Google Maps,我试图得到高度,但它没有得到任何垃圾值。我已跟踪此链接: 你需要调用runnable,类似这样的东西 public void onLocationChanged(Location location) { if (location == null) { } else { new Thread(new Runnable() { public void run() { final d
你需要调用runnable,类似这样的东西
public void onLocationChanged(Location location) {
if (location == null) {
}
else {
new Thread(new Runnable() {
public void run() {
final double alt = getAltitude(lon, lat);
}
}).run();
}
当您已经将它解析为double时,您正试图从字符串中获取它的值
double res = Double.NaN;
while ((line = bufferedReader.readLine()) != null) {
int r = -1;
StringBuffer respStr = new StringBuffer();
while ((r = inputStream.read()) != -1)
respStr.append((char) r);
String tagOpen = "<double>";
String tagClose = "</double>";
if (respStr.indexOf(tagOpen) != -1) {
int start = respStr.indexOf(tagOpen) + tagOpen.length();
int end = respStr.indexOf(tagClose);
String value = respStr.substring(start, end);
// parsing to double here.
res = Double.parseDouble(value);
}
}
inputStream.close();
httpURLConnection.disconnect();
Log.v("Altitude D",String.valueOf(res));
// return String.valueOf(res); get rid of this line
return res;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// or return res down here.
return res;
}
double res=double.NaN;
而((line=bufferedReader.readLine())!=null){
int r=-1;
StringBuffer respStr=新的StringBuffer();
而((r=inputStream.read())!=-1)
响应追加((char)r);
字符串tagOpen=“”;
字符串tagClose=“”;
如果(响应索引of(tagOpen)!=-1){
int start=respStr.indexOf(tagOpen)+tagOpen.length();
int end=respStr.indexOf(tagClose);
字符串值=响应子字符串(开始、结束);
//这里要加倍。
res=Double.parseDouble(值);
}
}
inputStream.close();
httpURLConnection.disconnect();
Log.v(“高度D”,字符串值(res));
//返回字符串.valueOf(res);摆脱这条线
返回res;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
//或者回到这里。
返回res;
}
您需要调用runnable,类似这样的函数
public void onLocationChanged(Location location) {
if (location == null) {
}
else {
new Thread(new Runnable() {
public void run() {
final double alt = getAltitude(lon, lat);
}
}).run();
}
当您已经将它解析为double时,您正试图从字符串中获取它的值
double res = Double.NaN;
while ((line = bufferedReader.readLine()) != null) {
int r = -1;
StringBuffer respStr = new StringBuffer();
while ((r = inputStream.read()) != -1)
respStr.append((char) r);
String tagOpen = "<double>";
String tagClose = "</double>";
if (respStr.indexOf(tagOpen) != -1) {
int start = respStr.indexOf(tagOpen) + tagOpen.length();
int end = respStr.indexOf(tagClose);
String value = respStr.substring(start, end);
// parsing to double here.
res = Double.parseDouble(value);
}
}
inputStream.close();
httpURLConnection.disconnect();
Log.v("Altitude D",String.valueOf(res));
// return String.valueOf(res); get rid of this line
return res;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// or return res down here.
return res;
}
double res=double.NaN;
而((line=bufferedReader.readLine())!=null){
int r=-1;
StringBuffer respStr=新的StringBuffer();
而((r=inputStream.read())!=-1)
响应追加((char)r);
字符串tagOpen=“”;
字符串tagClose=“”;
如果(响应索引of(tagOpen)!=-1){
int start=respStr.indexOf(tagOpen)+tagOpen.length();
int end=respStr.indexOf(tagClose);
字符串值=响应子字符串(开始、结束);
//这里要加倍。
res=Double.parseDouble(值);
}
}
inputStream.close();
httpURLConnection.disconnect();
Log.v(“高度D”,字符串值(res));
//返回字符串.valueOf(res);摆脱这条线
返回res;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
//或者回到这里。
返回res;
}
查看此链接:我跟踪了该链接,上面的代码是对该代码的修改,但有一些错误,url无法显示页面查看此链接:我跟踪了该链接,上面的代码是对该代码的修改,但有一些错误,url无法显示页面谢谢,女士,但AsyncTask的onPostExecute显示尝试返回时出错,返回值仅为Double。这就是问题所在,夫人。但如果你能尽快提供,对我会很有帮助的。顺便说一句,再次感谢:)我用这个高度呼叫全班,高度=新高度();execute(String.valueOf(location.getLatitude()),String.valueOf(location.getLongitude());从onLocationChangedthank you'am,但是在AsyncTask的onPostExecute上显示错误,尝试返回时仅返回两倍。这就是问题所在,夫人。但如果你能尽快提供,对我会很有帮助的。顺便说一句,再次感谢:)我用这个高度呼叫全班,高度=新高度();execute(String.valueOf(location.getLatitude()),String.valueOf(location.getLongitude());从OnLocation更改