Java 实现经纬度转化为具体地点

amapKey需要自己申请,具体怎么申请网上有很多教程。

 

  /**
     * 经纬度转化为具体地点
     * 参数格式:120.307499,31.576411 (经度,纬度)
     *           120.307499,31.576411|117.320003,40.99195|107.320003,40.99195
     * 正式环境替换掉{@link #amapKey}
     */
    @ApiOperation(value = "经纬度转化为具体地点", notes = "经纬度转化为具体地点")
    @ApiImplicitParam(paramType = "query", name = "points", value = "经纬度坐标 最多支持20个坐标点 多个点之间用\"|\"分割", required = true, dataType = "String")
    @GetMapping("/pointsToLocations")
    public ResultBean pointsToLocationsAll(@RequestParam String points) throws UnsupportedEncodingException {
        logger.info("------ 经纬度转化为具体地点  pointsToLocations:{} start", points);
        //将GPS坐标转化为高德地图坐标的URL后再去请求位置信息
        String convertUrl = "https://restapi.amap.com/v3/assistant/coordinate/convert?locations="+ URLEncoder.encode(points,"UTF-8")+"&coordsys=gps&key="+amapKey;
        JSONObject jsonObject = JSONObject.fromObject(HttpClientUtil.doGet(convertUrl));
        String amapPoints = (String) jsonObject.get("locations");
        String formattedAmapPoints = URLEncoder.encode(amapPoints.replaceAll(";", "|"), "UTF-8");
        String locationUrl = "https://restapi.amap.com/v3/geocode/regeo?output=json&location="+formattedAmapPoints+"&key="+amapKey+"&radius=1000&batch=true";
        JSONObject result = JSONObject.fromObject(HttpClientUtil.doGet(locationUrl));
        logger.info("------ 经纬度转化为具体地点  pointsToLocations: end");
        return ResultBean.ok().putDataValue(result);
    }

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值