博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用百度LBS做一个小Demo
阅读量:6423 次
发布时间:2019-06-23

本文共 4683 字,大约阅读时间需要 15 分钟。

  • 申请ak(即获取密钥

    •  去这儿注册一个开发者账号即可

  • 拼写发送http请求的url

    • 譬如这样的调用

    • http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=E4805d16520de693a3fe707cdc962045&callback=showLocation
  • 接收http请求返回的数据

下面看看代码

/** * 接口常量 * @author rex * */public interface BaiDuApi {    /*     * 根据ip获取信息     */    public static final String BD_IP_LOCATION_API = "http://api.map.baidu.com/location/ip";        /*     *根据城市/经纬度获取信息     */    public static final String BD_LOCATION2POINT_API = "http://api.map.baidu.com/geocoder/v2/";        /*     * 百度lbs ak密钥     */    public static final String BD_LBS_AK = "你申请的AK";    }

    

/* * 百度地图API */public final class BaiDuMapApi {    private static Map
 params = CollectionUtil.newHashMap();    private static final List
 LOCAL_IP = Arrays.asList("127.0.0.1", "localhost");    /*     * 根据ip获取经纬度     */    public static Map
 getPoint(String ip) {        params.clear();        Map
 point = CollectionUtil.newHashMap();        if (null != ip && !LOCAL_IP.contains(ip)) {            params.put("ip", ip);        }        params.put("ak", BaiDuApi.BD_LBS_AK);        params.put("coor", "bd09ll");        String r = HttpKit.get(BaiDuApi.BD_IP_LOCATION_API, params);        String json = StringUtils.unicodeToString(r);        Map
 map = JSONUtil.json2Map(json);        Map
 content = JSONUtil.json2Map(map.get("content").toString());        Map
 xy = JSONUtil.json2Map(content.get("point").toString());        point.put("latitude", xy.get("y"));        point.put("longitude", xy.get("x"));        return point;    }    /*     * 根据城市和地址获取经纬度     */    public static Map
 getPoint(String city, String address) {        params.clear();        Map
 point = CollectionUtil.newHashMap();        if (StringUtils.isNotBlank(city) && StringUtils.isNotBlank(address)) {            params.put("ak", BaiDuApi.BD_LBS_AK);            params.put("callback", "renderOption");            params.put("output", "json");            params.put("city", city);            params.put("address", address);            String r = HttpKit.get(BaiDuApi.BD_LOCATION2POINT_API, params);            String json = StringUtils.unicodeToString(r.substring(r.indexOf("{"), r.lastIndexOf("}") + 1));            Map
 map = JSONUtil.json2Map(json);            Map
 content = JSONUtil.json2Map(map.get("result").toString());            Map
 location = JSONUtil.json2Map(content.get("location").toString());            point.put("latitude", location.get("lat").toString());            point.put("longitude", location.get("lng").toString());        }        return point;    }    /*     * 根据ip获取address     */    public static Map
 getAddress(String ip) {        params.clear();        Map
 address_detail = CollectionUtil.newHashMap();        if (null != ip && !LOCAL_IP.contains(ip)) {            params.put("ip", ip);        }        params.put("ak", BaiDuApi.BD_LBS_AK);        String r = HttpKit.get(BaiDuApi.BD_IP_LOCATION_API, params);        String json = StringUtils.unicodeToString(r);        Map
 map = JSONUtil.json2Map(json);        Map
 content = JSONUtil.json2Map(map.get("content").toString());        address_detail = JSONUtil.json2Map(content.get("address_detail").toString());        return address_detail;    }    /*     * 根据经纬度获取详细地址     */    public static Map
 getAddress(String latitude, String longitude) {        params.clear();        Map
 info = CollectionUtil.newHashMap();        if (StringUtils.isNotBlank(latitude) && StringUtils.isNotBlank(longitude)) {            params.put("callback", "renderReverse");            params.put("ak", BaiDuApi.BD_LBS_AK);            params.put("location", latitude + "," + longitude);            params.put("output", "json");            params.put("pois", "0");            String r = HttpKit.get(BaiDuApi.BD_LOCATION2POINT_API, params);            String json = StringUtils.unicodeToString(r.substring(r.indexOf("{"), r.lastIndexOf("}") + 1));            Map
 map = JSONUtil.json2Map(json);            info = JSONUtil.json2Map(map.get("result").toString());        }        return info;    }}

/* * 百度地图API测试 */public class Test {    public static void main(String[] args) {        //获取地址信息        Map
 m1 = BaiDuMapApi.getAddress(null);        System.out.println(m1);                //获取经纬度信息        Map
 m2 = BaiDuMapApi.getPoint(null);        System.out.println(m2);                //根据城市获取经纬度        Map
 m3 = BaiDuMapApi.getPoint("上海市", "东方明珠");        System.out.println(m3);                //根据经纬度获取地址        Map
 m4 = BaiDuMapApi.getAddress(m3.get("latitude"), m3.get("longitude"));        System.out.println(m4);    }}

    

{
province=上海市, city=上海市, street=, district=, street_number=, city_code=289}{
latitude=31.24916171, longitude=121.48789949}{
latitude=31.244750205504, longitude=121.50713723717}{
formatted_address=上海市浦东新区陆家嘴环路1388号, business=东外滩,陆家嘴,外滩, cityCode=289, location={
"lat":31.244750051136,"lng":121.50713723717}, addressComponent={
"city":"上海市","district":"浦东新区","province":"上海市","street":"陆家嘴环路","street_number":"1388号"}}

转载地址:http://dnwga.baihongyu.com/

你可能感兴趣的文章
Android性能优化之TraceView和Lint使用详解
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>
要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
查看>>
javascript实现音频mp3播放
查看>>
html5-离线缓存
查看>>
linux系统安装完后的常见工作
查看>>
在Linux服务器、客户端中构建密钥对验证进行远程连接
查看>>
和“C”的再遇
查看>>
一键安装kubernetes 1.13.0 集群
查看>>
RabbitMq的集群搭建
查看>>
spring boot + mybatis 同时访问多数据源
查看>>
URL中汉字转码
查看>>
[转]go正则实例
查看>>
Selector中关于顺序的注意事项
查看>>
小黑小波比.清空<div>标签内容
查看>>
Java中的ExceptionInInitializerError异常及解决方法
查看>>
Spring 注入bean时的初始化和销毁操作
查看>>