java 根据地址返回经纬度
时间: 2023-07-30 14:07:37 浏览: 177
要根据地址返回经纬度,可以使用Java中的Geocoding API。这个API可以通过调用Google Maps API或百度地图API来实现。
以Google Maps API为例,可以使用Java中的HttpURLConnection类来向Google Maps API发送请求,并解析返回的JSON数据来获取经纬度信息。具体步骤如下:
1. 构造请求URL,包含需要查询的地址信息。例如,查询北京市海淀区中关村的经纬度,请求URL为:
```
https://maps.googleapis.com/maps/api/geocode/json?address=海淀区中关村&components=country:CN|locality:北京市&key=YOUR_API_KEY
```
其中,`YOUR_API_KEY`需要替换为你自己的Google Maps API密钥。
2. 使用HttpURLConnection类发送GET请求,获取返回的JSON数据。
```java
String requestUrl = "https://maps.googleapis.com/maps/api/geocode/json?address=海淀区中关村&components=country:CN|locality:北京市&key=YOUR_API_KEY";
URL url = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
```
3. 解析返回的JSON数据,获取经纬度信息。
```java
JSONObject jsonObject = new JSONObject(response.toString());
JSONArray results = jsonObject.getJSONArray("results");
if (results.length() > 0) {
JSONObject result = results.getJSONObject(0);
JSONObject location = result.getJSONObject("geometry").getJSONObject("location");
double lat = location.getDouble("lat"); // 纬度
double lng = location.getDouble("lng"); // 经度
System.out.println("经度:" + lng + ",纬度:" + lat);
}
```
注意,使用Geocoding API进行地址解析需要付费,且查询次数有限制。在实际开发中,需要根据自己的需求选择合适的API,并合理使用查询次数。
阅读全文