关于GPS坐标转百度坐标与goolg坐标转百度坐标java代码实现方法

百度显示坐标经过了两次加密所以需要转换。
<pre name="code" class="java">package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.text.ParseException;import sun.misc.BASE64Decoder;/*** GPS坐标转百度坐标测试* @author Administrator**/
public class LoctionTest {public static void main(String args[]) throws ParseException {changgeXY("120.11508", "30.279146");}public static String changgeXY(String xx, String yy) {try {Socket s = new Socket("api.map.baidu.com", 80);BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream(), "UTF-8"));OutputStream out = s.getOutputStream();StringBuffer sb = new StringBuffer("GET /ag/coord/convert?from=0&to=4");sb.append("&x=" + xx + "&y=" + yy);sb.append("&callback=BMap.Convertor.cbk_3976 HTTP/1.1\r\n");sb.append("User-Agent: Java/1.6.0_20\r\n");sb.append("Host: api.map.baidu.com:80\r\n");sb.append("Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n");sb.append("Connection: Close\r\n");sb.append("\r\n");out.write(sb.toString().getBytes());String json = "";String tmp = "";while ((tmp = br.readLine()) != null) {// System.out.println(tmp);json += tmp;}int start = json.indexOf("cbk_3976");int end = json.lastIndexOf("}");if (start != -1 && end != -1&& json.contains("\"x\":\"")) {json = json.substring(start, end);String[] point = json.split(",");String x = point[1].split(":")[1].replace("\"", "");String y = point[2].split(":")[1].replace("\"", "");//System.out.println(new String(decode(x)) + "," + new String(decode(y)));//String result = new String(decode(x)) + "," + new String(decode(y));//System.out.println(result.substring(0, result.indexOf(",")));//System.out.println(result.substring(result.indexOf(",")+1));return (new String(decode(x)) + "," + new String(decode(y)));} else {System.out.println("gps坐标无效!!");}out.close();br.close();} catch (Exception e) {e.printStackTrace();}return null;}/*** 解码* @param str* @return string*/public static byte[] decode(String str) {byte[] bt = null;try {BASE64Decoder decoder = new BASE64Decoder();bt = decoder.decodeBuffer(str);// System.out.println(new String (bt));} catch (IOException e) {e.printStackTrace();}return bt;}}
//===========================================================================================================================================import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;import net.sf.json.JSONObject;import com.alibaba.fastjson.util.Base64;
/*** goolg坐标转百度坐标* @author Administrator**/
public class GoolgToBaiduTest {
public static void main(String args[]) throws ParseException {String result = GoolgToBaidu("120.11508", "30.279146");JSONObject  dataJson=JSONObject.fromObject(result);String x = String.valueOf(dataJson.get("x"));String y = String.valueOf(dataJson.get("y"));byte[] x1=Base64.decodeFast(x);byte[] y1=Base64.decodeFast(y);double lon = Double.parseDouble(new String(x1));double lat = Double.parseDouble(new String(y1));System.out.println(lon+","+lat);
}
public static  String GoolgToBaidu(String lon, String lat) {
String result = "";String url="http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x="+lon+"&y="+lat;try{//String urlName = url + "?"+param;URL U = new URL(url);URLConnection connection = U.openConnection();connection.connect(); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;while ((line = in.readLine())!= null){result += line;}in.close();   }catch(Exception e){System.out.println("没有结果!"+e);}return result;
}

百度转GPS简单粗暴的方法:

百度坐标和GPS坐标转换在很近的距离时偏差非常接近。 
假设你有百度坐标:x1=116.397428,y1=39.90923 
把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=116.41004950566,y2=39.916979519873

通过计算就可以得到GPS的坐标: 
x = 2*x1-x2,y = 2*y1-y2 
x=116.38480649434001 
y=39.901480480127

关于GPS坐标转百度坐标与goolg坐标转百度坐标java代码实现方法相关推荐

  1. java 地图坐标转换_百度地图经纬度和地址互转(Java代码)

    这是基于springmvc+mybatis 的一个controller.如果不是这个框架,可以把方法实体抽到自己写的一个类中,然后再测试 package com.uwitec.controller.s ...

  2. WGS84转换为三大图商(百度、高德、腾讯)坐标,Gcj02转换为WGS84

    首先说一说关于坐标系,WGS84坐标系是1984世界大地坐标系(World Geodetic System)的简称. 它是美国国防制图局于1984年建立的,是GPS卫星星历的参考基准,也是协议地球参考 ...

  3. android获得图片的坐标,Android百度地图定位后获取周边位置的实现代码

    本文实例讲解Android百度地图定位后获取周边位置的实现代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 1.布局文件 android:orientation="vertic ...

  4. 【具体实现过程】百度地图POI区域的边界经纬度坐标数据采集

    最近有个项目需要拿到百度地图中XXX市中所有学校的边界坐标.经过一下午的努力,终于成功拿到了坐标,对坐标数据还原和验证.特此记录一下具体实现过程和爬取思路. 前言:什么是POI? Point of i ...

  5. 如何引入百度地图和获取精准获取经纬度坐标

    ​​​​​​引入百度地图 百度地图官网 开发手册 百度地图官网注册用户 -> 控制台 -> 认证用户 -> 创建项目 -> 获取ak密钥 -> 替换js中ak秘钥 < ...

  6. 百度地图网站获取指定地点经纬度坐标方法

    有时候我们要查询某个位置的经纬度坐标,但是手机上的百度地图应用不能得到这个信息. 百度地图网页版就可以根据输入的地址查询经纬度,还可以把经纬度复制出来. 方法如下. 还可以根据坐标查询地址. 内容提要 ...

  7. 四维图新地图坐标_一种融合双目视觉和差分卫星定位的地标地图生成方法与流程...

    本发明属于地图测绘技术领域,更为具体地讲,涉及一种融合双目视觉和差分卫星定位的地标地图生成方法. 背景技术: 地标地图是一种将地图去除冗余信息以轻量化形式存储的高精度地图,可以为智能车提供部分静态目标 ...

  8. 我的世界pe服务器坐标怎么显示,我的世界手机版坐标怎么看 PE版没有MOD怎么查看坐标...

    我的世界手机版中坐标可以方便定位,但是在PE版中不像PC版那么方便可以直接查看坐标.今天4399蕾米为大家带来我的世界手机版坐标怎么看,PE版没有MOD怎么查看坐标,一起来学习一下吧! ▍坐标怎么看 ...

  9. matlab绝对坐标与相对坐标系,cad相对坐标转换到绝对坐标

    你可以使用迅捷CAD编辑器演示一下,快速得到需要查询显示的坐标,然后操作cad相对坐标转换到绝对坐标. 第 一步:在百度浏览器中搜索迅捷CAD编辑器,然后进入迅捷官网,点 击下载安装CAD编辑器标准版 ...

最新文章

  1. geany怎么创建文件夹_SAP事务码太多,记不住怎么办?
  2. 搭建Zabbix分布式监控
  3. spring beans源码解读之 ioc容器之始祖--DefaultListableBeanFactory
  4. 中年架构师的20个小时,全靠忍!
  5. 【Python】函数外定义变量并在函数内进行更新
  6. 宅在家限制智力输出?这场论文复现赛让思维发光
  7. bootstrap_bootstrap中日历范围选择插件daterangepicker的使用
  8. 前端学习(3116):react-hello-react的事件绑定
  9. IIS不能下载ini文件
  10. 乐玩自动化测试模块_五大测试框架介绍,附带全套黑马自动化测试视频教程(完结)...
  11. 如何将多个excel表格合并成一个_如何将一个视频分割成多个片段
  12. Excel进行粗糙的快速更换图片背景颜色
  13. Ant—使用Ant构建简单Java项目(二)
  14. 华为手机bootloader上锁回锁教程及ADB工具下载——精华帖
  15. 利用FlashPaper在web页面中显示PDF文件(兼容各浏览器)
  16. dwc3_gadget_get_link_state
  17. Java实现 LeetCode 493 翻转对
  18. 有 5 个人坐在一起,问第五个人多少岁?
  19. N-ary Tree n叉树学习
  20. 针对conda环境中出现的ImportError: No module named easydict 问题,行之有效的解决方法

热门文章

  1. 移动硬盘直接拔出后无法读取
  2. cms php vue 开源_lucms - vue 与 Laravel 开发的后台管理系统
  3. 瑞星2007----免费升级法。
  4. 多线程:线程同步与死锁(卖票案例)、线程通信、生产者与消费者
  5. 中兴通讯加入星策开源社区 携手推动企业智能化转型建设
  6. 数字图像处理基础(冈萨雷斯)一
  7. 实验七 Android Studio Intent相机图库读取照片【班级名单列表视图03】
  8. linux运维工程师的要求,合格的Linux运维工程师应该具备的条件有哪些?
  9. K455L安装Ubuntu18.04历程
  10. 2021年安全员-A证考试题库及安全员-A证报名考试