百度地图API简单应用——1.根据地址查询经纬度java
时间: 2023-11-12 08:06:12 浏览: 97
python通过百度地图API获取某地址的经纬度详解
5星 · 资源好评率100%
好的,这里给出一个Java的示例代码,同样是使用地理编码服务API来根据地址查询经纬度:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class BaiduMapDemo {
public static void main(String[] args) {
String address = "北京市海淀区上地十街10号"; // 要查询的地址
String output = "json"; // 输出格式
String ak = "Your_AK"; // 替换成你的Access Key
try {
address = URLEncoder.encode(address, "UTF-8"); // URL编码
String url = "http://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=" + output + "&ak=" + ak;
String result = sendGet(url); // 发送HTTP请求并获取响应结果
JSONObject json = JSON.parseObject(result);
int status = json.getIntValue("status");
if (status == 0) {
JSONObject location = json.getJSONObject("result").getJSONObject("location");
double lng = location.getDoubleValue("lng"); // 经度
double lat = location.getDoubleValue("lat"); // 纬度
System.out.println("经度:" + lng + ",纬度:" + lat);
} else {
System.out.println("查询失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String sendGet(String url) throws IOException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder result = new StringBuilder();
while ((line = in.readLine()) != null) {
result.append(line);
}
in.close();
return result.toString();
}
}
```
同样需要替换掉AK为你自己的Access Key。这里使用了FastJSON来解析JSON响应结果,需要在项目中引入FastJSON的依赖。
另外,由于Java中的URL编码和解码方法不同于Python,所以需要使用`URLEncoder.encode()`方法将地址进行编码。同时,还需要注意请求频率和配额的问题,以免超过限制。
阅读全文