`

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  
代码里面没看到经纬度,标注下,如何获取,谢谢

相关推荐

    googleMap根据经纬度获取地理位置

    首先,`googleMap根据经纬度获取地理位置`这个标题涉及到的核心技术是Google Maps Geocoding服务。Geocoding是将地址或坐标(经纬度)转换为地理坐标的过程,反之亦然。在Google Maps API中,我们可以使用Geocoding ...

    Google Map Api 调用样例程序(Java版)

    5. **HTTP请求和JSON解析**:为了获取地图数据或者进行地理编码(将地址转换为经纬度),Java代码可能包含了向Google服务器发送HTTP请求并解析返回的JSON数据的逻辑。 6. **WebRoot**目录:这是Web应用的标准目录...

    在JAVA类中解析GOOGLE MAP地址和反向解析纬经度

    在Java编程环境中,解析Google Map地址以及反向解析经纬度是一项常见的任务,特别是在地理信息系统(GIS)相关的项目中。Google Maps API提供了丰富的功能,包括地址转换(Geocoding)和反向地理编码(Reverse ...

    jsp,java实现谷歌地图,查询地图功能

    - 使用API提供的方法如`google.maps.Map()`创建地图实例,`google.maps.Marker()`创建标记,`google.maps.Geocoder()`进行地址解析等。 5. **查询功能实现**: - 用户输入查询地址后,可以使用JavaScript的`...

    无密钥google map 第三代

    【描述】"里面有google map 地图比较点以及通过地址抓取经纬度"说明这个压缩包可能包含了两个关键功能的示例或工具:地图比较和地址到经纬度转换。地图比较可能允许用户查看同一地理位置在不同时间或不同条件下的...

    利用gi根据经纬度解析城市名

    例如,可以使用`geotools`的Web服务模块(WMS或WFS)连接到提供这种服务的服务器,如OpenStreetMap或Google Maps,然后通过发送请求获取城市名称。 `vividsolutions`是另一个与GIS相关的开发包,尤其是其JTS(Java ...

    安卓开发-android写的google map api 应用.zip.zip

    此外,你还可以利用Geocoding API进行地址解析,将地址转换为经纬度坐标;或者使用Directions API来规划路线,展示导航信息。 这个压缩包中的项目可能包含了以上所有步骤的实例代码,对于初学者来说,这是一个很好...

    输入地址获取map坐标

    3. 反向地理编码:利用地理编码服务或数据库(如Google Maps API、高德地图API、百度地图API等)将这些地址元素转换为对应的经纬度坐标。 博文链接中提到的“https://ieblaze.iteye.com/blog/928853”可能提供了...

    java Google地图

    1. **地理位置编码**:通过接收用户输入的地址,使用Geocoding API将其转换为经纬度坐标。这可以通过发送HTTP请求到Google Maps Geocoding API,然后解析返回的JSON数据来完成。 2. **逆向地理编码**:相反的过程,...

    安卓高级编程之Google Map(学习源代码)

    此外,Google Map API还支持路径规划和地理编码(地址转换为经纬度)等功能,可以用于实现导航系统。在源代码中,你可能会看到如何通过Directions API请求路线数据,以及如何解析和显示这些数据。 总的来说,“安卓...

    一个简单的google map例子代码

    下面,我们将深入探讨如何利用Google Map API创建一个简单的地图应用,通过输入地名实现定位。 首先,我们需要了解Google Maps JavaScript API,它是实现地图功能的核心。这个API允许开发者在网页或Web应用中嵌入...

    转发GOOGLE MAP的偏移数据

    在处理这类数据时,我们需要使用编程语言,如Python、Java或Go,结合GIS库,如GDAL、geopandas或者Google Maps API,进行解析和应用这些偏移信息。首先,我们需要读取offset.dat文件,这可能需要知道文件的内部结构...

    java用geocoder相关jar文件

    Java中的Geocoder是一个用于地理编码和反向地理编码的接口,它允许开发人员将地址转换为经纬度坐标或将坐标转换回地址。在Java应用程序中,如果你需要处理与地理位置相关的任务,比如地图显示、导航或者位置服务,...

    应用于android系统的基于ArcGis服务的瓦片地图的初级实现(JAVA编写,本人源码)

    或者实现地理编码和反编码功能,将地址转换为坐标或反之。 7. **性能优化**:由于地图瓦片的加载涉及网络请求,优化地图加载速度和减少内存占用至关重要。这可能涉及到缓存策略、异步加载以及合理的瓦片级别管理。 ...

    javamap.rar_源码

    7. **地理编码和反向地理编码**:将地址转换为经纬度坐标(地理编码)和反之(反向地理编码)是导航系统的重要组成部分。开发者可能使用Google Maps API或其他类似服务来实现这一功能。 8. **多线程**:为了保证...

    用java做的gps界面 可以显示地图

    7. **地理编码和反向地理编码**:将经纬度转换成地址(地理编码)和反之(反向地理编码)是常见的需求。你可以使用地图API提供的服务,或者第三方库如Geocoding4Java来实现。 8. **实时更新**:为了显示实时移动的...

    调用google地图服务并用xpath解析返回结果

    例如,Geocoding API用于将地址转换为经纬度坐标,Directions API用于获取两点之间的导航路线,Places API则可以用来搜索地点等。要调用这些API,你需要一个有效的API密钥,可以在Google Cloud Console上创建并管理...

    Android googlemap

    这个“Android googlemap”项目很显然是一个关于如何在Android应用中集成和使用Google Maps API的示例。下面我们将深入探讨Android Google Map开发的相关知识点。 首先,我们需要了解**Google Maps SDK for Android...

    仿造 Google Map 地图导航效果

    在IT行业中,构建一个类似Google Map的地图导航效果是一项复杂而精细的工作,涉及到多个技术领域,如Web开发、地理信息系统(GIS)、数据可视化以及用户界面设计等。以下将详细阐述实现这一效果所需的关键知识点: ...

    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 ...

Global site tag (gtag.js) - Google Analytics