2012-01-11 4 views
0

Я делал это несколько раз, чтобы получить адрес, разобрав Google json, который содержит информацию об аддресах на китайском языке. Но когда я показываю адрес на своем мобильном телефоне, все это на английском языке.Как получить ответ API геокодирования Google на другом языке, чем по умолчанию (fx.:Chinese)?

Я получаю json от url ниже. http://maps.googleapis.com/maps/api/geocode/json?address=wuhan&sensor=false

EDIT: С помощью ответа я Вана доля с рабочим раствором:

  StringBuffer sb=new StringBuffer(); 
      sb.append("http://maps.googleapis.com/maps/api/geocode/json?latlng=").append(latStr).append(',').append(lonStr).append("&sensor=false&Accept-Language:zh-CN"); 
      String url=sb.toString(); 
      HttpClient httpClient=new DefaultHttpClient(); 

      String responseData=""; 
      try { 
       HttpResponse response=httpClient.execute(new HttpGet(url)); 
       response.addHeader("Accept-Language", "zh-CN"); 
       HttpEntity entity=response.getEntity(); 
       BufferedReader bf=new BufferedReader(new InputStreamReader((entity.getContent()),"UTF-8")); 
       String line=""; 
       while((line=bf.readLine())!=null){ 
        responseData=responseData+line; 
       } 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
+1

где вопрос? где минимальная выборка того, как вы ее называете (даже не код Android, но, по крайней мере, какой api вы вызываете с какими параметрами) – Selvin

+0

http://maps.googleapis.com/maps/api/geocode/json?address=wuhan&sensor=false – lanyimo

+0

Этот json - это синтаксический анализ. – lanyimo

ответ

2

Просто добавьте Accept-Language в reaquest, потому что по умолчанию в Google API будет возвращать информацию на английском FX .: Accept-Language: zh-CN

EDIT (coz OP блуждает по):

если вы используете java.net.HttpURLConnection connection; затем использовать:

connection.setRequestProperty ("Accept-Language", "zh-CN");

если org.apache.http.client.methods.HttpGet request; то:

request.addHeader("Accept-Language", "zh-CN");

я только проверил это в fiddler2

и для

GET /maps/api/geocode/json?address=wuhan&sensor=false HTTP/1.0 
Host: maps.googleapis.com 
Accept-Language: zh-CN 

я получить

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "武汉", 
       "short_name" : "武汉", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "湖北省", 
       "short_name" : "湖北省", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "中国", 
       "short_name" : "CN", 
       "types" : [ "country", "political" ] 
      } 
     ], 
     "formatted_address" : "中国湖北省武汉市", 
     "geometry" : { 
      "bounds" : { 
       "northeast" : { 
        "lat" : 31.36126030, 
        "lng" : 115.08257280 
       }, 
       "southwest" : { 
        "lat" : 29.96907670, 
        "lng" : 113.70228110 
       } 
      }, 
      "location" : { 
       "lat" : 30.5930870, 
       "lng" : 114.3053570 
      }, 
      "location_type" : "APPROXIMATE", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 30.78745989999999, 
        "lng" : 114.6189880 
       }, 
       "southwest" : { 
        "lat" : 30.34877210, 
        "lng" : 113.9817810 
       } 
      } 
     }, 
     "types" : [ "locality", "political" ] 
     } 
    ], 
    "status" : "OK" 
} 
+0

add Accept -Language: zh-CN в конце URL-адреса? – lanyimo

+0

Я отредактировал свой ответ ... не забудьте принять его как ответ, если он работает;) – Selvin

+0

Большое вам спасибо. Я пытаюсь. – lanyimo

 Смежные вопросы

  • Нет связанных вопросов^_^