知识大全 java如何通过google map api实现地址解析

Posted 地址

篇首语:生也有涯,知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java如何通过google map api实现地址解析相关的知识,希望对你有一定的参考价值。

  地址解析就是将地址(如 广东省广州市)转换为地理坐标(如经度 纬度 )的过程 google map api提供两种方法实现地址解析

  第一种 是通过使用 GClientGeocoder 对象来实现 大家可以参考google map api的相关文档 以下是摘自google的相关代码

  var map = new GMap (document getElementById( map_canvas ));

  var geocoder = new GClientGeocoder();

  function showAddress(address)

  geocoder getLatLng(

  address

  function(point)

  if (!point)

  alert( 无法解析: + address);

   else

  map setCenter(point );

  var marker = new GMarker(point);

  map addOverlay(marker);

  marker openInfoWindowHtml(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 && !address equals( ))

  try

  address = URLEncoder encode(address UTF );//进行这一步是为了避免乱码

   catch (UnsupportedEncodingException e )

  logger error( 转码失败 e );

  

  String[]  arr = new String[ ];

  arr[ ] = address;

  arr[ ] = OUTPUT;

  arr[ ] = SENSOR;

  arr[ ] = KEY;

  String url = MessageFormat format( &output= &sensor= &key= arr);

  URL urlmy = null;

  try

  urlmy = new URL(url);

  HttpURLConnection con = (HttpURLConnection) urlmy openConnection();

  con setFollowRedirects (true );

  con setInstanceFollowRedirects(false );

  nnect();

  BufferedReader br = new BufferedReader(new InputStreamReader(con getInputStream() UTF ));

  String s = ;

  StringBuffer sb = new StringBuffer( );

  while ((s = br readLine()) != null )

  sb append(s+ \\r\\n );

  

  ret = +sb;

   catch (MalformedURLException e)

  logger error( 通过方式获取地址信息失败 e);

   catch (IOException e)

  logger error( 文件读取失败 e);

  

  

  return ret;

  

cha138/Article/program/Java/hx/201311/27069

相关参考