码迷,mamicode.com
首页 > 其他好文 > 详细

百度地图用ip获取当前位置的经纬度(高精度)

时间:2016-09-08 16:18:18      阅读:1946      评论:0      收藏:0      [点我收藏+]

标签:

步骤比较简单
先上百度地图API官网,申请一个应用AK(访问凭据);查看一下高进度定位的API,看看是否都符合要求
下面直接上代码
/**
 * 根据ip获取地理坐标
 * @param ip
 * @return
 */
public JSONObject getCoorsByIp(String ip){
   if (null == ip) {
      ip = "";
   }
   try {
      URL url = new URL("http://api.map.baidu.com/highacciploc/v1?qcip="+ip+
            "&qterm=pc&ak="+*********+"&coord=bd09ll");
      InputStream inputStream = url.openStream();
      InputStreamReader inputReader = new InputStreamReader(inputStream);
      BufferedReader reader = new BufferedReader(inputReader);
      String results=reader.readLine();
      if(!StringUtils.hasText(results)){
         return null;
      }
      JSONObject resultsJson = JSONObject.fromObject(results); //返回值为标准json格式
      JSONObject resultJson = JSONObject.fromObject(resultsJson.get("result"));
      String result = resultJson.get("error").toString();
      if(!result.equals("161")){
         logger.info("根据ip获取经纬度失败!");
         return null;
      }
      JSONObject contentJson = JSONObject.fromObject(resultsJson.get("content"));
      JSONObject coorJson = JSONObject.fromObject(contentJson.get("location"));
      return coorJson;
   } catch (MalformedURLException e) {
      e.printStackTrace();
   } catch (IOException e) {
      e.printStackTrace();
   }
   return null;
}
个人感觉百度的高进度定位还是不太准确,只能是定位大致区域

还有一种是普通定位,无非请求的url不一致,其他的都差不多

百度地图用ip获取当前位置的经纬度(高精度)

标签:

原文地址:http://www.cnblogs.com/anxiang/p/5853134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!