`

java实现将gps坐标转化成百度坐标

阅读更多
package com.cz.util;

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 Gps2baidu {
	public static void main(String args[]) throws ParseException {
		System.out.println("haha");
		String aaa=changgeXY("116.397428", "39.90923");
		System.out.println(aaa);
	}

	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;
	}

}

 

分享到:
评论

相关推荐

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

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

    java GPS坐标系转百度坐标系

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

    GPS坐标转百度坐标java算法

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

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

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

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

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

    GPSConvertBaiDu_java_GPS转百度_DEMO_百度坐标_

    因此,我们需要一个转换算法,将原始GPS坐标(WGS84)转换为百度坐标(BD-09)。 “GPSConvertBaiDu”项目提供的就是一个这样的转换工具。在Java编程语言中实现,它可能包含以下几个关键部分: 1. **坐标转换函数*...

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

    下面将详细阐述这两种坐标系统以及它们之间的转换方法,并提供基于JAVA的源代码实现。 首先,GPS坐标系统,也被称为WGS84(World Geodetic System 1984),是一种全球性的大地坐标系统。它由经度、纬度和海拔三个...

    java wgs84坐标转换成北京54坐标

    自己写的wgs84坐标转成北京54坐标,java源码,本人已经测试过,能用,首先要找一个坐标软件求得七参(随便一个坐标软件都行),然后再用此源码进行坐标转换,

    GPS转百度坐标demo、

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

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

    本话题主要探讨如何使用Java编程语言实现火星坐标系(也称GCJ-02坐标系)与WGS-84(World Geodetic System 1984)坐标系之间的转化。这两个坐标系在中国大陆地图应用中尤其重要,因为根据中国法规,公开发布的地理...

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

    在Android开发中,涉及到地图应用时,经常需要处理不同坐标系之间的转换,特别是GPS坐标与地图服务提供商坐标之间的转换。本文主要聚焦于Android系统中如何将GPS获取的坐标转换为适用于高德地图的坐标。 首先,我们...

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

    7. **源代码**:提供的Java源代码如`Co_transformation.java`, `Test.java`, `Test_7cansu.java`, `Xiamen_cotrans.java`等,应该是实现了上述坐标转换算法的程序。`BLH.java`, `XYZ.java`, `Pxyz.java`可能是处理...

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

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

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

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

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

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

    收集的java坐标转换WGS84、GCJ02B、BD09及纠偏

    **坐标纠偏**通常是指在从GPS设备获取到原始WGS84坐标后,将其转换为GCJ-02或BD-09坐标的过程,因为在国内,直接使用WGS84坐标可能会导致位置信息的不准确。在`CoordinateConvert.java`文件中,可能包含将WGS84坐标...

    GPS定位之坐标转换源代码C++

    本文将深入探讨坐标转换的基本概念、常用方法以及C++实现的相关知识点。 一、坐标系统简介 1. 坐标系统:地球表面的空间位置通常用坐标系统来表示,常见的有地心地固坐标系(如WGS84)、参心地固坐标系(如CGCS2000...

    百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现

    2. **坐标纠偏**:由于国内的安全考虑,百度和高德地图的坐标进行了加密偏移处理,这导致直接将WGS84坐标转换为这些系统时会出现位置偏差。因此,"纠偏"就是指通过特定算法解密这些加密坐标,以获得准确的位置。 3....

    geojson文件坐标转换工具

    7. **应用范围**:这个工具对于需要在不同坐标系间进行数据交互的开发者或者GIS专业人士非常有用,例如,从WGS84坐标系的OpenStreetMap数据转换成GCJ02坐标系,以便在中国地图服务上正确显示。 总的来说,这个...

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

    它们可能采用了反编译百度或火星坐标算法,然后通过编程语言(如Python)实现,使得用户无需深入了解复杂的数学模型就能快速转换坐标。 "说明.txt"文件可能包含了工具的使用方法、注意事项以及转换的理论基础。用户...

Global site tag (gtag.js) - Google Analytics