`

Google地图中国geocode地址解析

    博客分类:
  • java
阅读更多

地址解析:将地址转化为地理坐标过程,

可以用Google的API,但是这个有一定次数限制,具体可以查选google map官方说明。

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class GoogleGeocoder {

    public static final String OUTPUT_JSON="json";
    public static final String OUTPUT_XML="xml";
    public static final String OUTPUT_KML="kml";
    public static final String OUTPUT_CSV="csv";
    static String url = "http://ditu.google.cn/maps/geo?sensor=false&oe=utf8&q=";
    public static String parseAddress(String admin,String query,String outputType) throws  IOException{
        String queryURL = url + admin+query+"&output="+outputType;
        URL myURL = null;
        URLConnection httpsConn = null;
        try {
            myURL = new URL(queryURL);
        } catch (MalformedURLException e) {
            e.printStackTrace();
            throw e;
        }

        StringBuilder sb = new StringBuilder(4*4096);
      
            httpsConn = (URLConnection) myURL.openConnection();
            InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream(), "UTF-8");
            BufferedReader br = new BufferedReader(insr);
            String data = null;
            while ((data = br.readLine()) != null) {
                sb.append(data);
                if(sb.length()>=4*4096) break;
            }

httpsConn.close(); 
        return sb.toString();
    }

    public static void main(String argv[]) {
        
        try {
          String xml=   parseAddress("中国,北京市,","人民大学",OUTPUT_XML);
          System.out.println(xml);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 返回结果为XML(等价于KML),也可以改为JSON或者CSV。

上面是用请求输出按照UTF-8格式输出,然后用UTF-8格式读取输出流。

 

<?xml version="1.0" encoding="UTF-8" ?><kml xmlns="http://earth.google.com/kml/2.0"><Response>  <name>中国,北京市,人民大学</name>  <Status>    <code>200</code>    <request>geocode</request>  </Status>  <Placemark id="p1">    <address>中国北京市海淀区中关村大街59号中国人民大学</address>    <AddressDetails Accuracy="9" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>CN</CountryNameCode><CountryName>中国</CountryName><AdministrativeArea><AdministrativeAreaName>北京市</AdministrativeAreaName><Locality><LocalityName>北京市</LocalityName><DependentLocality><DependentLocalityName>海淀区</DependentLocalityName><Thoroughfare><ThoroughfareName>中关村大街59号中国人民大学</ThoroughfareName></Thoroughfare><AddressLine>中国人民大学</AddressLine></DependentLocality></Locality></AdministrativeArea></Country></AddressDetails>    <ExtendedData>      <LatLonBox north="39.9795316" south="39.9624293" east="116.3301154" west="116.2981006" />    </ExtendedData>    <Point><coordinates>116.3141080,39.9709810,0</coordinates></Point>  </Placemark></Response></kml>

 

如果需要高效的解析方式,最好在查询参数中指定BOUNDER 即地图的左下和右上坐标。

 

 

分享到:
评论

相关推荐

    Java 调用Google Map Api解析地址,解析经纬度实例

    使用google地图的反向地址解析功能,提供一个经纬度得到对应地址,或者给出模糊地址,得到经纬度,放在java后台代码中处理,这个使用的是Google的地理编码服务。一般而言数据量不大的情况使用是不限制的。按照Google...

    Google 地图 JavaScript API 示例 简单地址解析

    通过这个示例,我们可以学习如何使用Google地图JavaScript API进行地址解析,并在地图上显示结果。开发者可以根据需求进一步扩展,例如处理多个地址、添加事件监听器或实现更复杂的交互功能。同时,需要注意的是,...

    百度地图地址解析

    在这个名为“百度地图地址解析”的项目中,我们重点关注的是使用Python语言来调用百度地图API进行地址解析的过程。Python因其简洁明了的语法和丰富的库支持,成为了数据处理和Web服务交互的首选语言。 首先,你需要...

    google Map Api反解析.htm

    google Map Api反解析.htm 谷歌地图地理解析和反解析geocode.geocoder详解

    google地址解析

    使用Google Maps API v3进行地址解析时,你需要调用`geocode`方法,并传入一个包含地址的请求参数。API会返回一个包含多个结果的响应,每个结果都包含了对应的地理位置信息,包括经纬度坐标(lat和lng)、地址组件...

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

    这将打印出地址解析和反向地理编码的结果,帮助你检查代码是否正确地与Google Maps API交互。 最后,别忘了在使用Google Maps API时要注意配额限制和费用。免费版本有每天有限的请求次数,超出后可能需要购买付费版...

    C#开发中谷歌地图调用

    在C#开发中调用谷歌地图API是一项常见的任务,它能为应用程序添加地图展示、定位、导航等功能。本文将详细讲解如何使用谷歌地图API以及涉及的核心类。 首先,要使用谷歌地图API,首要步骤是注册API密钥。如果你的...

    google map 3.0 反向解析地址

    1. **Google Maps API**:Google提供了Maps JavaScript API,让开发者可以在网页或应用程序中集成地图功能,包括反向解析地址。在Google Map 3.0中,你可以通过调用`geocoder.geocode()`方法来进行反向解析。 2. **...

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

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

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

    Google Maps API提供了丰富的功能,包括地理位置查询、路线规划、地图展示等。在这个场景中,我们主要关注如何通过编程方式调用Google Maps服务,并使用XPath来解析返回的结果。XPath是一种在XML文档中查找信息的...

    Google map 谷歌地图 Google地图 V3 第三版

    使用`google.maps.Geocoder`可以将地址转换为坐标,反之亦然。 ```javascript var geocoder = new google.maps.Geocoder(); geocoder.geocode({address: 'New York'}, function(results, status) { if (status ===...

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

    1. Google Maps Geocoding API的使用,包括发起请求和解析响应。 2. JavaScript与Google Maps API的交互,主要是通过JavaScript对象与API进行数据交换。 3. Java后端对JSON数据的处理,通过Gson库将JSON转换为Java ...

    谷歌地图定位、搜索与获得点击位置坐标

    types: ['geocode'] // 搜索地址 }); ``` 当用户在输入框中输入内容时,API会提供相关的搜索建议。 为了获取用户点击地图的位置坐标,我们需要监听地图的`click`事件,并在事件处理函数中获取点击位置的经纬度: ...

    高德地图返回地址详细信息

    在IT行业中,高德地图是一款广泛应用的导航与地图服务软件,尤其在Android平台上深受开发者和用户的喜爱。...在实际项目中,这通常涉及到对用户位置的获取、地址解析以及信息展示等多个环节的综合运用。

    PHP谷歌地图API

    在这个案例中,开发者可能会使用`geocode`方法将已知的地理位置(IP解析出的地址)转化为地图上的坐标,并在地图上显示出来。 5. **UTFWry.dat**:这个文件可能是某种编码或数据文件,可能是IP库的一部分,用于IP到...

    经纬度解析成中文地址_实现经纬度解析成中文地址_解析经纬度_经纬度_

    下面我们将详细探讨如何在C#环境中利用高德地图API实现经纬度解析成中文地址。 首先,我们需要了解高德地图API的基本概念。高德地图API是一组接口,允许开发者在其应用程序中嵌入地图、搜索、导航等功能。反地理...

    利用谷歌地图获取对应地名的经纬度源码(C#)

    本篇将重点介绍如何利用C#语言,结合谷歌地图API来实现这一功能。 首先,谷歌地图提供了一个强大的Web服务API,可以方便地进行地理编码查询。在C#中,我们可以使用HttpClient类来发送HTTP请求到谷歌地图的API接口,...

    谷歌地图开发教程

    9. **地理编码**:谷歌地图API提供地理编码服务,可以将地址字符串转换为经纬度坐标,反之亦然。`geocoder.geocode()`方法用于进行地理编码请求。 10. **路径规划**:通过API可以实现路线规划功能,包括驾车、步行...

    谷歌地图源码(支持收索)

    谷歌地图源码是一种基于JavaScript技术实现的Web应用程序,它提供了丰富的地图交互功能,包括地图的显示、缩放、平移以及关键的是,支持地图上的搜索功能。这一源码对于开发者来说具有很高的学习和参考价值,可以...

    谷歌地图api调用代码

    谷歌地图API是Google提供的一项强大的服务,允许开发者在自己的网页或应用中集成地图功能。它提供了丰富的接口和工具,能够实现地图的显示、定位、路线规划、地理编码、标记、信息窗口等多种功能。本篇文章将深入...

Global site tag (gtag.js) - Google Analytics