你能告诉我如何在黑莓中使用经度和纬度来获取当前地址吗?
我找到了这段代码,但此代码中的getConnectionStringForGoogleMap()
是什么?
private void getLocationFromGoogleMaps() {
try {
StreamConnection s = null;
InputStream iStream = null;
s=(StreamConnection)javax.microedition.io.Connector.open("http://maps.google.com/maps/geo?json&ll="+_lattitude+","+_longitude+getConnectionStringForGoogleMap());//&deviceside=false&ConnectionType=mds-public"
HttpConnection con = (HttpConnection)s;
con.setRequestMethod(HttpConnection.GET);
con.setRequestProperty("Content-Type", "//text");
int status = con.getResponseCode();
if (status == HttpConnection.HTTP_OK)
{
iStream=s.openInputStream();
int len=(int) con.getLength();
byte[] data = new byte[8000];
byte k;
String result="";
while((k = (byte)iStream.read()) != -1) {
result = result+(char)k;
}
try {
JSONObject jsonObjectMapData=new JSONObject(result);
JSONArray jsonaryPlaceMark = jsonObjectMapData.getJSONArray("Placemark");
JSONObject address= jsonaryPlaceMark.getJSONObject(0);
String placeName=address.getString("address");
if(placeName!=null)
lblLoc.setText(address.getString("address"));
else
lblLoc.setText("Location information currently unavilable");
} catch (Exception e) {
lblLoc.setText("location information Currently Unavilable");
}
}
}catch (Exception e) {
System.out.println(e);
lblLoc.setText("location information Currently Unavilable");
}
}
答案 0 :(得分:0)
我怀疑您要查找的代码会按照此处的规范在URL中添加连接字符串:
Different-ways-to-make-an-HTTP-or-socket-connection
这样可以连接到Internet。我建议您使用网络连接API(ConnectionFactory),而不是使用它,您将在此处找到:
关于此代码的实际使用方式,它似乎使用了一些Google API,因此您需要查找相关的Google API,以了解它正在做什么以及如何使用它。
使用Google执行此反向地理编码的替代方法是让BlackBerry Services执行此操作。这适用于具有完整BlackBerry数据计划的设备。我建议您查看“
中的地理编码和反向地理编码”一节