根据经纬度获取省市区等地理位置(百度API,Java)
2022/7/27 1:24:54
本文主要是介绍根据经纬度获取省市区等地理位置(百度API,Java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
测试使用,之后持续更新
1.百度地图开放平台注册成为个人开发人员
https://lbsyun.baidu.com/apiconsole/key#/home
2.控制台---->申请密钥(AK)
3.申请密钥
申请服务端密钥名称随便起
白名单: 0.0.0.0/0
其他按需设置
申请浏览器端密钥
白名单: *
其他按需设置
4.导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency>
5.java代码
import com.alibaba.fastjson.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; /** * @author Katie Qu * @date 2021/4/25 */ public class BaiduMapGeocoderUtil { /** * 百度地图 Api调用相关的百度AK */ public final static String BAIDU_MAP_AK = "S3b9buXfNthnsH1GOF2gI2HIOufDTWhs"; //测试使用 public static void main(String[] args) { getAddressInfoByLngAndLat("118.767413","32.041544"); } /** * 根据经纬度调用百度API获取 地理位置信息,根据经纬度 * @param longitude 经度 * @param latitude 纬度 * @return */ public static JSONObject getAddressInfoByLngAndLat(String longitude,String latitude){ JSONObject obj = new JSONObject(); String location=latitude+","+longitude; //百度url coordtype :bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84ll( GPS经纬度) String url ="http://api.map.baidu.com/reverse_geocoding/v3/?ak="+BAIDU_MAP_AK+"&output=json&coordtype=wgs84ll&location="+location; try { String json = loadJSON(url); obj = JSONObject.parseObject(json); System.out.println(obj.toString()); // status:0 成功 String success="0"; String status = String.valueOf(obj.get("status")); if(success.equals(status)){ String result = String.valueOf(obj.get("result")); JSONObject resultObj = JSONObject.parseObject(result); String addressComponent = String.valueOf(resultObj.get("addressComponent")); //JSON字符串转换成Java对象 // AddressComponent addressComponentInfo = JSONObject.parseObject(addressComponent, AddressComponent.class); System.out.println("addressComponentInfo:"+addressComponent); } } catch (Exception e) { System.out.println("未找到相匹配的经纬度,请检查地址!"); } return obj; } public static String loadJSON(String url) { StringBuilder json = new StringBuilder(); try { URL oracle = new URL(url); URLConnection yc = oracle.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "UTF-8")); String inputLine = null; while ((inputLine = in.readLine()) != null) { json.append(inputLine); } in.close(); } catch (MalformedURLException e) {} catch (IOException e) {} return json.toString(); } }
这篇关于根据经纬度获取省市区等地理位置(百度API,Java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南