`
radio123
  • 浏览: 204716 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

把Gps坐标转成百度坐标的java方法

阅读更多

  许多用户希望把Gps 的坐标转成Baidu地图的坐标,并且存在数据库里,由于百度没有提供webservice的接口,所以我只能用这种方式来解析了,废话少说,直接贴代码。

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;

public class Test {
	public static void main(String args[]) throws ParseException {
		changgeXY("116.397428", "39.90923");
	}

	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("\"", "");
				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;
	}

}
 

 

 希望对大家有帮助!

0
2
分享到:
评论
1 楼 evianwu 2015-01-23  
写的不错,谢啦,,,,主要用来转换微信中获取的坐标,看情况微信中的应该是gps坐标

相关推荐

    GPS坐标转百度坐标java算法

    通过GPS坐标的经纬度,经计算返回一组百度坐标数据,简单方便

    java GPS坐标系转百度坐标系

    GPS坐标系转换成百度坐标系 经过验证很准确 希望能给你有所帮助。

    Gps坐标系转换Java工具类WGS坐标与Google和百度坐标互转

    本文将详细介绍如何使用Java实现WGS84坐标与Google地图坐标、百度地图坐标之间的转换,并且会探讨相关的理论背景以及如何在实际项目中应用这些工具类。 首先,WGS84(World Geodetic System 1984)是一种全球通用的...

    GPS坐标与火星坐标互转JAVA版源代码

    1. `GPS2火星(GPS坐标)`:此方法接收一个GPS坐标对象(包含经度和纬度),并返回相应的火星坐标对象。 2. `火星2GPS(火星坐标)`:此方法接收一个火星坐标对象,返回对应的GPS坐标对象。 源代码可能会包含一些关键的...

    java版GPS坐标转换为高德地图坐标

    此文件为纯java编写的GPS坐标转换到高德地图坐标,直接将文件添加到工程目录,调用转换函数即可,输入是double类型,输出是double数组,注意:输入输出数据的单位都是度。

    GPSConvertBaiDu_java_GPS转百度_DEMO_百度坐标_

    由于百度地图采用的是自有的加密坐标体系,因此在使用百度地图服务时,需要对原始GPS坐标进行转换。 首先,我们需要理解GPS坐标系统。GPS坐标基于全球大地坐标系WGS84,由经度、纬度和海拔高度组成。这是国际通用的...

    GPS转百度坐标demo、

    描述中提到的具体转换代码可能是一个Java或Kotlin函数,用于将GPS坐标解密并调整到百度坐标系统。转换算法可能包括一些固定的偏移值和特定的数学公式,比如Helmert变换或者Mercator投影等。 标签“android gps”...

    GPS坐标转地图坐标java版算法(纠偏)

    gps坐标转地图坐标算法,纠偏算法。GPS坐标就是传说中大地坐标系统(WGS-84),国内的互联网公司,都不会使用GPS坐标,因为这不符合国家政策。所以大家都会使用GCJ-02坐标系,如腾讯搜搜地图、搜狐搜狗地图、阿里云...

    Java实现常见坐标系(百度,高德,WGS84)转墨卡托坐标系(可直接运行).zip

    本项目提供了一个Java实现的工具,用于将常见的坐标系,包括百度坐标系(BD-09)、高德坐标系(GCJ-02)以及WGS84经纬度坐标,转换为广泛使用的墨卡托坐标系。以下将详细阐述这些坐标系以及转换过程中的关键知识点。...

    火星百度坐标转WGS84坐标小工具

    "火星百度坐标转WGS84坐标小工具"是一个专为解决中国地区坐标转换问题而设计的实用程序。在本篇文章中,我们将深入探讨这个工具的工作原理、涉及的技术以及其在实际应用中的重要性。 首先,我们来了解一下标题中的...

    高德、百度坐标系转天地图坐标系

    本篇文章将详细阐述高德、百度坐标系与天地图坐标系之间的转换方法,并探讨这种转换的重要性。 首先,我们要理解坐标系的基本概念。在地理信息系统中,坐标系是用于定义地球上任何位置的数学框架。常见的全球坐标系...

    百度坐标、高得坐标、WGS84坐标转换 js java C#

    在标题提到的"百度坐标、高得坐标、WGS84坐标转换 js java C#"中,涉及到了三种常用的坐标系统:百度坐标(BD-09)、高德坐标(GCJ-02)以及全球广泛使用的WGS84坐标系统。这些坐标系统之间的转换对于地图应用、定位...

    Android GPS转百度坐标demo.zip

    而百度地图则使用自己的坐标系,这被称为百度墨卡托坐标,是为了保护用户隐私而进行的一种加密处理,使得原始的GPS坐标无法直接在百度地图上准确展示。 转换过程通常分为两个步骤: 1. **GPS坐标到GCJ-02坐标**:...

    WGS-84大地坐标转北京-54坐标java源代码;七参数、四参数;坐标转换

    1. **WGS-84坐标系**:这是全球广泛使用的地球坐标系,基于地球的平均几何形状(椭球体)来定义地理位置,常用于GPS系统。它的原点是地球质心,Z轴指向地球极轴,X轴通过格林尼治天文台,Y轴遵循右手规则确定。 2. ...

    Android中GPS坐标转换为高德地图坐标详解

    通过调用`from()`方法设置源坐标类型,然后使用`coord()`方法传入GPS坐标,最后通过`convert()`方法完成转换。以下是一个示例代码: ```java public AMapLocation fromGpsToAmap(Location location) { ...

    java实现火星坐标系与84坐标系之转化

    WGS-84是一种全球广泛使用的地球参考坐标系统,是GPS(全球定位系统)和其他许多导航系统的基础。 首先,我们来理解一下两个坐标系的基本概念: 1. **WGS-84坐标系**:这是一个国际标准的地理坐标系统,以地球椭...

    BD09 坐标 WGS84 坐标 GCJ02 坐标的相互转换

    1. **WGS84坐标系统**:全球定位系统(GPS)采用的标准坐标系统,是国际地球参考框架,以地球质心为原点,以地球椭球体的长半轴为X轴,赤道面与X轴的交点为Y轴,地轴为Z轴。它是一个全球性的大地坐标系统,广泛用于...

    百度、搞得、WGS84坐标转换 js java

    总之,百度、高德和WGS84坐标系之间的转换涉及到复杂的数学运算,而`coordtransform.js`和`CoordTransform.java`正是解决这一问题的代码实现。它们使得开发者能够在不同坐标系统间灵活地进行数据转换,适应不同的...

    Java 计算两个GPS坐标点之间的距离.txt

    Java 计算两个GPS坐标点之间的距离 JAVA 计算两个经纬度关系计算 - FALCON - 斑驳的蓝调 1. Lat1 Lung1 表示A点经纬度,Lat2 Lung2 表示B点经纬度; 2. a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点经度...

    球面坐标与平面坐标的转换

    球面坐标与平面坐标的转换是数学几何及地理信息系统中常见的操作,特别是在处理地球表面位置时,例如在导航、地图制作或GPS系统中。这里我们将深入探讨这两种坐标系统的概念以及它们之间的转换方法。 首先,我们要...

Global site tag (gtag.js) - Google Analytics