Geoprer并不总是返回值。您可以尝试在for循环中发送3次请求。我应该至少可以返回一次。如果不是这样,则可能是连接问题,也可能是其他问题,例如服务器不回复您的请求。尝试看看这些线程:
Geoprer并不总是返回值,而geoprer.getFromLocationName仅返回null
更新:
我也有一个while循环,但是我曾经尝试最多10次。有时,即使连接到互联网,它也从不返回任何内容。然后,我使用这种可靠得多的方法来每次获取地址:
public JSonObject getLocationInfo() { HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geopre/json?latlng="+lat+","+lng+"&sensor=true"); HttpClient client = new DefaultHttpClient(); HttpResponse response; StringBuilder stringBuilder = new StringBuilder(); try { response = client.execute(httpGet); HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); int b; while ((b = stream.read()) != -1) { stringBuilder.append((char) b); } } catch (ClientProtocolException e) { } catch (IOException e) { } JSonObject jsonObject = new JSonObject(); try { jsonObject = new JSonObject(stringBuilder.toString()); } catch (JSonException e) { e.printStackTrace(); } return jsonObject; }
我这样称呼它:
JSonObject ret = getLocationInfo(); JSonObject location;String location_string;try { location = ret.getJSonArray("results").getJSonObject(0); location_string = location.getString("formatted_address"); Log.d("test", "formattted address:" + location_string);} catch (JSonException e1) { e1.printStackTrace();}
希望这可以帮助。我也厌倦了依赖地理编码器。这对我有用。如果用经纬度坐标替换URL,并在Web浏览器中看到返回的JSON对象。您会看到刚刚发生的事情。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)