接入百度地图的SDK,按照他的定位文档定位为什么有200多米的偏差?
6条回答 默认 最新
- threenewbee 2016-08-28 11:50关注
/** * GPS坐标转换为百度地图坐标 * 需要引入javabase64.jar 和json的一些包 * */ public class Gps2BaiDu { public static void main(String[] args) { //转换前的GPS坐标 double x=116.397428; double y=39.90923; //google 坐标转百度链接 //http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=116.32715863448607&y=39.990912172420714&callback=BMap.Convertor.cbk_3694 //gps坐标的type=0 //google坐标的type=2 //baidu坐标的type=4 String path = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x="+x+"+&y="+y+"&callback=BMap.Convertor.cbk_7594"; try { //使用http请求获取转换结果 URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inStream = conn.getInputStream(); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } //得到返回的结果 String res = outStream.toString(); System.out.println(res); //处理结果 if (res.indexOf("(") > 0 && res.indexOf(")") > 0) { String str = res.substring(res.indexOf("(") + 1, res.indexOf(")")); String err = res.substring(res.indexOf("error") + 7, res.indexOf("error") + 8); if ("0".equals(err)) { JSONObject js = JSONObject.fromObject(str); //编码转换 String x1 = new String(Base64.decode(js.getString("x"))); String y1 = new String(Base64.decode(js.getString("y"))); System.out.println(x1 + " " + y1); } } } catch (Exception e) { e.printStackTrace(); } } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了
- ¥15 链式存储应该如何解决