许多用户希望把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;
}
}
希望对大家有帮助!
分享到:
相关推荐
通过GPS坐标的经纬度,经计算返回一组百度坐标数据,简单方便
GPS坐标系转换成百度坐标系 经过验证很准确 希望能给你有所帮助。
本文将详细介绍如何使用Java实现WGS84坐标与Google地图坐标、百度地图坐标之间的转换,并且会探讨相关的理论背景以及如何在实际项目中应用这些工具类。 首先,WGS84(World Geodetic System 1984)是一种全球通用的...
由于百度地图采用的是自有的加密坐标体系,因此在使用百度地图服务时,需要对原始GPS坐标进行转换。 首先,我们需要理解GPS坐标系统。GPS坐标基于全球大地坐标系WGS84,由经度、纬度和海拔高度组成。这是国际通用的...
1. `GPS2火星(GPS坐标)`:此方法接收一个GPS坐标对象(包含经度和纬度),并返回相应的火星坐标对象。 2. `火星2GPS(火星坐标)`:此方法接收一个火星坐标对象,返回对应的GPS坐标对象。 源代码可能会包含一些关键的...
此文件为纯java编写的GPS坐标转换到高德地图坐标,直接将文件添加到工程目录,调用转换函数即可,输入是double类型,输出是double数组,注意:输入输出数据的单位都是度。
描述中提到的具体转换代码可能是一个Java或Kotlin函数,用于将GPS坐标解密并调整到百度坐标系统。转换算法可能包括一些固定的偏移值和特定的数学公式,比如Helmert变换或者Mercator投影等。 标签“android gps”...
本项目提供了一个Java实现的工具,用于将常见的坐标系,包括百度坐标系(BD-09)、高德坐标系(GCJ-02)以及WGS84经纬度坐标,转换为广泛使用的墨卡托坐标系。以下将详细阐述这些坐标系以及转换过程中的关键知识点。...
gps坐标转地图坐标算法,纠偏算法。GPS坐标就是传说中大地坐标系统(WGS-84),国内的互联网公司,都不会使用GPS坐标,因为这不符合国家政策。所以大家都会使用GCJ-02坐标系,如腾讯搜搜地图、搜狐搜狗地图、阿里云...
"火星百度坐标转WGS84坐标小工具"是一个专为解决中国地区坐标转换问题而设计的实用程序。在本篇文章中,我们将深入探讨这个工具的工作原理、涉及的技术以及其在实际应用中的重要性。 首先,我们来了解一下标题中的...
本篇文章将详细阐述高德、百度坐标系与天地图坐标系之间的转换方法,并探讨这种转换的重要性。 首先,我们要理解坐标系的基本概念。在地理信息系统中,坐标系是用于定义地球上任何位置的数学框架。常见的全球坐标系...
自己写的wgs84坐标转成北京54坐标,java源码,本人已经测试过,能用,首先要找一个坐标软件求得七参(随便一个坐标软件都行),然后再用此源码进行坐标转换,
而百度地图则使用自己的坐标系,这被称为百度墨卡托坐标,是为了保护用户隐私而进行的一种加密处理,使得原始的GPS坐标无法直接在百度地图上准确展示。 转换过程通常分为两个步骤: 1. **GPS坐标到GCJ-02坐标**:...
在标题提到的"百度坐标、高得坐标、WGS84坐标转换 js java C#"中,涉及到了三种常用的坐标系统:百度坐标(BD-09)、高德坐标(GCJ-02)以及全球广泛使用的WGS84坐标系统。这些坐标系统之间的转换对于地图应用、定位...
1. **WGS-84坐标系**:这是全球广泛使用的地球坐标系,基于地球的平均几何形状(椭球体)来定义地理位置,常用于GPS系统。它的原点是地球质心,Z轴指向地球极轴,X轴通过格林尼治天文台,Y轴遵循右手规则确定。 2. ...
通过调用`from()`方法设置源坐标类型,然后使用`coord()`方法传入GPS坐标,最后通过`convert()`方法完成转换。以下是一个示例代码: ```java public AMapLocation fromGpsToAmap(Location location) { ...
WGS-84是一种全球广泛使用的地球参考坐标系统,是GPS(全球定位系统)和其他许多导航系统的基础。 首先,我们来理解一下两个坐标系的基本概念: 1. **WGS-84坐标系**:这是一个国际标准的地理坐标系统,以地球椭...
3. **BD-09(百度坐标)**:这是百度地图使用的坐标系统,基于GCJ-02坐标系,进一步增加了偏移量,以保护用户隐私并提供更精确的服务。 **坐标纠偏**通常是指在从GPS设备获取到原始WGS84坐标后,将其转换为GCJ-02或...
Java代码,提取图片EXIF块中的GPS信息,转换为高德地图API的坐标,使用到metadata-extractor
1. **WGS84坐标系统**:全球定位系统(GPS)采用的标准坐标系统,是国际地球参考框架,以地球质心为原点,以地球椭球体的长半轴为X轴,赤道面与X轴的交点为Y轴,地轴为Z轴。它是一个全球性的大地坐标系统,广泛用于...