根据经纬度获取省市区 -- 逆地理编码

本文介绍如何使用百度地图API与Java后端集成,实现根据经纬度获取位置信息的功能。包括百度地图开放平台注册、AK申请流程,以及具体的Java代码实现。解决了本地请求时的APPReferer校验失败问题。
摘要由CSDN通过智能技术生成

维护一个很久之前的项目 需要新增一些功能-在此记录下

后端进行解析--使用百度地图api 

http://api.map.baidu.com/reverse_geocoding/v3/

首先需要登入百度地图开放平台注册AK -- http://lbsyun.baidu.com/apiconsole/key#/home

我这里选中的则是微信小程序

 

下面就是后端代码实现  这里使用为java 请求接口

http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194  //GET请求

   后端逻辑代码

针对百度地图api请求具体参数说明

location : 经纬度 经度在前 纬度在后 以逗号分割 例如 38.76623,116.43213

ak          :  用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为key

output    : 输出格式

详细内容请访问 --百度地图开发平台服务文档

  http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad

具体实现

    /**
    *  根据经纬度获取位置信息
    *
    * @return
    */
   @RequestMapping("wx/Address")
   @ResponseBody
   public JSONObject getLocationMsg(double latitude, double longitude) {
      String location = latitude + "," + longitude;
   
      String urlString =
            "http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak值&output=json&coordtype=wgs84ll&location=+"
                  + location;
      String res = "";
      try {
         URL url = new URL(urlString);
         java.net.HttpURLConnection conn = (java.net.HttpURLConnection) url.openConnection();
         conn.setDoOutput(true);
         conn.setRequestMethod("POST");
         java.io.BufferedReader in = new java.io.BufferedReader(
               new java.io.InputStreamReader(conn.getInputStream(), "UTF-8"));
         String line;
         while ((line = in.readLine()) != null) {
            res += line + "\n";
         }
         in.close();
      } catch (Exception e) {
         System.out.println("error in wapaction,and e is " + e.getMessage());
      }

      System.out.println(res);
      JSONObject object = JSON.parseObject(res);
      return object;
   }
}

postman请求返回信息

http://xiaoqa.vaiwan.com 这个是自己的内网穿透 大家没必要去访问的

遇到的问题

question 1   

220

APP Referer校验失败

刚进行测试的时候出现该问题,其原因个人推测为 是本地请求没有获取到小程序的APPID 

   解决:修改百度地图开放平台的应用 APPID处为 * 参考图二 。推到线上之后可以改回正常的APPID,多个以逗号分割(为测试)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值