Blackberry GPS получить текущий адрес местоположения? - PullRequest
1 голос
/ 08 апреля 2011

Привет, я новичок в разработке приложений BlackBerry. Я хочу узнать текущее местоположение GPS. Я успешно получил широту и долготу, но я не знаю, как получить текущий адрес. Может кто-нибудь дать мне образец? Пожалуйста, спасибо заранее.

Ответы [ 2 ]

3 голосов
/ 11 апреля 2011

Вы можете использовать карту Google для решения вашей проблемы, карта Google вернет JSON (или XML) по вашему выбору, если вы запросите с широтой и долготой.

URL-адрес: http://maps.google.com/maps/geo?json&ll="+_lattitude+","+_longitude

Это вернет все данные заданной широты и долготы в формате JSON, и вам придется проанализировать JSON, возвращенный картой Google.

Вы можете использовать следующий код:

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");
    }        
}

Примечание. Я использую FacebookBlackBerrySDK-0.3.5-src для анализа JSON, или вы можете использовать XML как есть.

3 голосов
/ 08 апреля 2011

То, что вы ищете, называется «Обратное геокодирование».У RIM есть пример того, как именно это сделать на платформе BB (ну, в любом случае, это один из способов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...