熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java如何通過google map api實現地址解析

2013-11-23 19:32:37  來源: Java核心技術 

  地址解析就是將地址(如廣東省廣州市)轉換為地理坐標(如經度緯度)的過程google map api提供兩種方法實現地址解析

  第一種是通過使用 GClientGeocoder 對象來實現大家可以參考google map api的相關文檔以下是摘自google的相關代碼

  var map = new GMap(documentgetElementById(map_canvas));

  var geocoder = new GClientGeocoder();

  function showAddress(address) {

  geocodergetLatLng(

  address

  function(point) {

  if (!point) {

  alert(無法解析: + address);

  } else {

  mapsetCenter(point );

  var marker = new GMarker(point);

  mapaddOverlay(marker);

  markeropenInfoWindowHtml(address);

  }

  }

  );

  }

  第二種方法就是通過HTTP請求直接訪問調用參數等相關說明請參考CN/apis/maps/documentation/l

  而通過java實現的方法如下

  /**

  * 利用googlemap api 通過 HTTP 進行地址解析

  * @param address 地址

  * @return HTTP狀態代碼精確度(請參見精確度常數)緯度經度

  */

  private String getLatlng(String address){

  String ret = ;

  if(address != null && !addressequals()){

  try {

  address = URLEncoderencode(addressUTF);//進行這一步是為了避免亂碼

  } catch (UnsupportedEncodingException e) {

  loggererror(轉碼失敗 e);

  }

  String[]  arr = new String[];

  arr[] = address;

  arr[] = OUTPUT;

  arr[] = SENSOR;

  arr[] = KEY;

  String url = MessageFormatformat({}&output={}&sensor={}&key={}arr);

  URL urlmy = null;

  try {

  urlmy = new URL(url);

  HttpURLConnection con = (HttpURLConnection) urlmyopenConnection();

  consetFollowRedirects (true );

  consetInstanceFollowRedirects(false );

  nnect();

  BufferedReader br = new BufferedReader(new InputStreamReader(congetInputStream()UTF));

  String s = ;

  StringBuffer sb = new StringBuffer();

  while ((s = brreadLine()) != null ) {

  sbappend(s+\r\n);

  }

  ret = +sb;

  } catch (MalformedURLException e) {

  loggererror(通過http方式獲取地址信息失敗 e);

  } catch (IOException e) {

  loggererror(文件讀取失敗 e);

  }

  }

  return ret;

  }

  大家可以通過測試頁面進行測試


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27069.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.