如何在黑莓中使用经度和纬度获取当前地址

时间:2013-12-02 09:17:43

标签: blackberry java-me

你能告诉我如何在黑莓中使用经度和纬度来获取当前地址吗?

我找到了这段代码,但此代码中的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");
    }        
}

1 个答案:

答案 0 :(得分:0)

我怀疑您要查找的代码会按照此处的规范在URL中添加连接字符串:

Different-ways-to-make-an-HTTP-or-socket-connection

这样可以连接到Internet。我建议您使用网络连接API(ConnectionFactory),而不是使用它,您将在此处找到:

Network API

关于此代码的实际使用方式,它似乎使用了一些Google API,因此您需要查找相关的Google API,以了解它正在做什么以及如何使用它。

使用Google执行此反向地理编码的替代方法是让BlackBerry Services执行此操作。这适用于具有完整BlackBerry数据计划的设备。我建议您查看“

中的地理编码和反向地理编码”一节

Location-APIs-Start-to-finish