`

java如何通过google map api实现地址解析、地址转换成经纬度

阅读更多

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

 

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

 var map = new GMap2(document.getElementById("map_canvas"));
 var geocoder = new GClientGeocoder();
 
 function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert("无法解析:" + address);
      } else {
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
    }
  );
}

 

     第二种方法,就是通过HTTP请求直接访问。调用参数等相关说明请参考http://code.google.com/intl/zh-CN/apis/maps/documentation/services.html

 

      而通过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-8");//进行这一步是为了避免乱码
   } catch (UnsupportedEncodingException e1) {
    logger.error("转码失败", e1);
   }
   String[]  arr = new String[4];
   arr[0] = address;
   arr[1] = OUTPUT;
   arr[2] = SENSOR;
   arr[3] = KEY;
   String url = MessageFormat.format("http://maps.google.com/maps/geo?q={0}&output={1}&sensor={2}&key={3}",arr);
   URL urlmy = null;
   try {
    urlmy = new URL(url);
    HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();
    con.setFollowRedirects (true );
    con.setInstanceFollowRedirects(false );
    con.connect();
    BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
    String s = "";
    StringBuffer sb = new StringBuffer("");
    while ((s = br.readLine()) != null ) {
     sb.append(s+"\r\n");
    }
    ret = ""+sb;
   } catch (MalformedURLException e) {
    logger.error("通过http方式获取地址信息失败", e);
   } catch (IOException e) {
    logger.error("文件读取失败", e);
   }
  }
  return ret;
 }

 

大家可以通过测试页面进行测试

5
1
分享到:
评论
3 楼 木石流云 2011-10-17  
转换不了,能不能把完整的需要的import 也写上去? 我试了一下,String[]  arr = new String[4];
   arr[0] = address;
   arr[1] = OUTPUT;
   arr[2] = SENSOR;
   arr[3] = KEY;
   String url = MessageFormat.format("http://maps.google.com/maps/geo?q={0}&output={1}&sensor={2}&key={3}",arr);

直接把值写在url 里才有数据返回 ,写在arr里 没有数据返回的。
2 楼 coolzhi 2010-11-18  
lvyuebin 写道
代码里面没看到经纬度,标注下,如何获取,谢谢

代码里面是没有经纬度的,是调用getLatlng方法可以返回对应地址的经纬度
1 楼 lvyuebin 2010-11-15  
代码里面没看到经纬度,标注下,如何获取,谢谢

相关推荐

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Android集成主流优秀第三方组件框架

    数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方 法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操 作 读取本地资源工具类...

    集成目前Android主流优秀第三方组件

    数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类...

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类...

    集成安卓主流优秀第三方组件框架.zip

    数据操作工具类(ToolData.java),自动递归获取表单数据封装成Map、本地数据分页共通方法等 图片操作工具类(ToolPicture.java),生成二维码、验证码、灰度、合成、圆角、水印等操作 读取本地资源工具类...

    Google Android SDK开发范例大全(第3版) 4/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(第3版) 3/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(第3版) 5/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(第3版) 1/5

    Google Map应用:GPS定位、规划导航路径、GPS Google地图、地址反查地理坐标等卫星全球定位实例。 创意程序设计:即时动态桌面、电蚊香、转转轮盘、任务管理器、中英发音字典、手机手电筒、GPS轨迹记录器、女性贴身...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 ...

    Google Android SDK开发范例大全的目录

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google Android SDK 开发范例大全01

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google Android SDK 开发范例大全02

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google+Android+SDK开发范例大全

    9.5 GPSGoogle地图——LocationListener与MapView实时更新 9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机...

    Google Android sdk 开发范例大全 部分章节代码

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

    Google Android SDK开发范例大全(完整版)

    9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 ...

Global site tag (gtag.js) - Google Analytics