`

Goole 地图 根据经纬度获取地址

    博客分类:
  • Java
 
阅读更多

package com.jueyue;

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

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.json.JSONException;

public class HttpRequestUtil {

public static String getRequestByUrl(String strurl){
String strjson = "";
try {
URL url = new URL(strurl);
URLConnection conn = url.openConnection();
HttpURLConnection http = (HttpURLConnection)conn;
http.setRequestMethod("GET");
http.setDoInput(true);
http.setDoOutput(true);
http.connect();
InputStream in = http.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-8"));
String s = null;
while((s = br.readLine()) != null) {
strjson+=s;
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strjson;
}



private static HttpMethod getGetMethod(String latlng) throws IOException {
PostMethod post = new PostMethod("/maps/api/geocode/json");
GetMethod get = new GetMethod("/maps/api/geocode/json");

NameValuePair simcard = new NameValuePair("latlng", latlng);
NameValuePair simcard1 = new NameValuePair("sensor", "false");
NameValuePair simcard2 = new NameValuePair("language", "zh-CN");
get.setQueryString(new NameValuePair[] { simcard, simcard1,simcard2});

//InputStream input = new FileInputStream(new File("/home/ubuntu/my.txt"));
//"".getBytes("ISO8859-1")
//InputStream input = new StringBufferInputStream("my test aaaaaaaaaa");
//post.setRequestBody(input);
return get;
}
private static HttpMethod getPostMethod(String latlng) throws IOException {
PostMethod post = new PostMethod("/maps/api/geocode/json");

//latlng=40.714224,-73.961452&sensor=false&&language=zh-TW
NameValuePair simcard = new NameValuePair("latlng", latlng);
NameValuePair simcard1 = new NameValuePair("sensor", "false");
NameValuePair simcard2 = new NameValuePair("language", "zh-CN");

post.setRequestBody(new NameValuePair[] { simcard, simcard1,simcard2});
//InputStream input = new FileInputStream(new File("/home/ubuntu/my.txt"));
//"".getBytes("ISO8859-1")
//InputStream input = new StringBufferInputStream("my test aaaaaaaaaa");
//post.setRequestBody(input);
return post;
}

/**
* 根据经纬度获取地址
* @param latlng
* @return
*/
public static String getGoogleAddressBylatlng(String latlng){
String strAddress = "";
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost("ditu.google.com", 80, "http");

HttpMethod method = null;
try {
method = getGetMethod(latlng);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}// 使用GET方式提交数据
try {
client.executeMethod(method);
} catch (HttpException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return "获取经纬度地址异常";
}
// 打印服务器返回的状态
int methodstatus = method.getStatusCode();
StringBuffer sb = new StringBuffer();
if(methodstatus == 200){
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(),"UTF-8"));
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);

}
org.json.JSONObject jo;
try {
jo = new org.json.JSONObject(sb.toString());
org.json.JSONArray ja = jo.getJSONArray("results");
org.json.JSONObject jo1 = ja.getJSONObject(0);
System.out.println(jo1.getString("formatted_address"));
strAddress = jo1.getString("formatted_address");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rd.close();
}catch (IOException e) {
throw new RuntimeException("error", e);
}
}
method.releaseConnection();
return strAddress;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = getRequestByUrl("http://ditu.google.com/maps/api/geocode/json?latlng=31.1899209667,121.3918055000&sensor=false&&language=zh-CN");
//String str = getRequestByUrl("http://ditu.google.com/maps/api/geocode/json?latlng=31.215912,121.477357&sensor=false&&language=zh-CN");
System.out.println(str);
/*String strhttp = HttpRequestUtil.getGoogleAddressBylatlng("31.1899209667,121.3918055000");
System.out.println(strhttp);*/
}

}

 

分享到:
评论

相关推荐

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

    在这个场景中,我们将主要探讨如何使用Google Maps API 根据经纬度获取地理位置信息。 首先,`googleMap根据经纬度获取地理位置`这个标题涉及到的核心技术是Google Maps Geocoding服务。Geocoding是将地址或坐标...

    根据经纬度获取google地图海拔

    根据经纬度获取google地图海拔

    .net 根据地址获取经纬度;根据经纬度获取地址

    接下来,根据经纬度获取地址,我们同样可以使用上述API的逆向地理编码(Reverse Geocoding)功能。只需将请求中的`address`参数替换为`latlng`,并传入经纬度坐标: ```csharp public async Task<string> ...

    Android 根据经纬度获取地址

    在Android开发中,有时我们需要根据用户的GPS坐标(经度和...以上是关于“Android根据经纬度获取地址”这一主题的主要知识点。在实际开发中,结合这些概念和技巧,可以创建一个能够为用户提供详细地理位置信息的应用。

    利用google地图根据地址批量获取经纬度

    在标题“利用google地图根据地址批量获取经纬度”中,我们关注的核心技术是通过Google Maps API来处理地理位置数据,特别是批量处理地址以获得对应的经纬度坐标。这在数据分析、物流管理、地图服务、位置追踪等场景...

    谷歌接口 通过经纬度查询地区信息

    通过对谷歌接口通过经纬度查询地区信息这一知识点的深入探讨,我们了解到谷歌地图API的强大功能及其在实际场景中的应用价值。无论是作为开发者还是普通用户,在了解了这项技术后都能够更好地利用地理信息进行工作和...

    批量经纬度获取地址软件(需联网使用,含批量 谷歌 经纬度 转 高德 经纬度 功能)

    批量经纬度获取地址软件(需联网使用,含批量 谷歌 经纬度 转 高德 经纬度 功能) 使用方法:双击exe打开软件,提示是否需要生成模板表格,输入是回车则生成表格模板,填写好谷歌数据后保存关闭表格,再双击软件重新...

    GooglEeath经纬度转高德经纬度并根据经纬度获取地址

    使用方法:双击软件弹出窗口提示是否需要新建模板,如果有模板的情况下直接点击回车,弹出文件拾取框选择模板表格文件确定执行程序

    根据GoogleMapApi给出地名获取经纬度,给出经纬度获取地名(Java版本)

    根据GoogleMapApi给出地名获取经纬度,给出经纬度获取地名(Java版本) RT

    C#根据经纬度获取城市.zip

    本资源“C#根据经纬度获取城市.zip”提供了一个解决方案,用于根据地球坐标系统(经度和纬度)定位到特定的地理区域,如省份、城市、县和街道。这种功能在各种应用中都很常见,例如地图应用、导航系统或者基于位置的...

    传入经纬度获取到当前的经纬度的区域

    这个题目所提及的“传入经纬度获取到当前的经纬度的区域”是一个功能,它允许我们输入一组经纬度坐标,然后返回对应的地区信息,如省市县等行政级别地址。这在导航、定位服务、位置数据分析等多个场景中都有广泛应用...

    根据点击的地图获取经纬度

    在Web端实现点击地图获取经纬度,通常我们会使用地图API,如Google Maps API、高德地图API或百度地图API等。这里以Google Maps API为例进行讲解。首先,在HTML文件中引入Google Maps API的JavaScript库,并创建一个...

    批量从谷歌获取地址的经纬度

    本项目专注于批量获取地址的经纬度,使用了Java编程语言,结合谷歌地图API来实现这一功能。下面将详细阐述相关知识点。 1. **Java编程基础**: Java是一种广泛使用的面向对象的编程语言,具有跨平台性、高效性和...

    地区经纬度信息获取(利用Google地图API获取)

    获取经纬度通常涉及到发送HTTP请求到Google地图API的特定端点,并传递需要查询的地址参数。API将处理请求,并返回包含经纬度信息的响应。一般情况下,开发者需要注册Google Cloud Platform并获取相应的API密钥。 4....

    连接google地图获取经纬度

    "连接Google地图获取经纬度"这个主题涉及到的关键技术主要包括地理编码(Geocoding)和API调用。下面将详细介绍这两个核心概念以及如何实现这个小工具。 地理编码是将地址转化为经纬度坐标的过程,它使得我们可以将...

    googlemap 经纬度 地理位置查询

    一个google map小应用 应用google map api可以获得点的经纬度并且可以根据地理位置名称定位。

    基于spring boot实现根据经纬度坐标返回所在行政区域

    1. **GeoCoding**:这是将地理坐标(经纬度)转换为人类可读地址(如街道、城市、国家等)的过程。这个项目可能依赖于第三方的GeoCoding服务,如Google Maps API或OpenStreetMap Nominatim API。它们提供RESTful接口...

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

    总的来说,通过C#调用谷歌地图API进行地理编码,可以帮助开发者在各种项目中轻松获取地名对应的经纬度信息,从而实现各种基于地理位置的功能,如定位、导航、距离计算等。在开发时,请务必遵守谷歌地图API的使用政策...

    根据坐标得到天地图、谷歌地图对应瓦片

    本文将详细讲解如何根据输入的坐标获取天地图和谷歌地图的相应瓦片。 首先,我们需要了解瓦片系统的基本原理。瓦片通常基于Web Mercator投影,这是一种将地球表面转换为平面的数学方法。这种投影方式将地球分为多个...

Global site tag (gtag.js) - Google Analytics