功能代码
httpclient方式请求百度的转换地址
http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=&y=
拿到的是转换后的json数据,但是坐标值是base64加密过的字符,需要解密一下
import java.io.IOException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
public class BaiduMapUtils {
public static final String googleToBaiduUrl = "http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=#x#&y=#y#";
public static String httpClientForGet(String url){
HttpClient client = new HttpClient();
GetMethod getMethod = new GetMethod(url);
getMethod.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
try {
client.executeMethod(getMethod);
if (getMethod.getStatusCode() == HttpStatus.SC_OK) {
return getMethod.getResponseBodyAsString();
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
getMethod.releaseConnection();
}
return "";
}
/**
* 转换谷歌为百度坐标
* @param x 经度
* @param y 纬度
* @return 获取转换过的百度坐标
*/
public static Map<String, Object> googleToBaidu(Double x, Double y){
Map<String, Object> map = new HashMap<String, Object>();
String relt = httpClientForGet(getGoogleToBaiduUrl(String.valueOf(x), String.valueOf(y)));
if(DyString.isNotEmpty(relt))
map = JsonUtils.parserToMap(relt);
map.put("x", Base64Utils.decode(map.get("x")));
map.put("y", Base64Utils.decode(map.get("y")));
return map;
}
/**
* 获取请求地址
*
* @param x
* @param y
* @return
*/
public static String getGoogleToBaiduUrl(String x, String y){
return googleToBaiduUrl.replace("#x#", x).replace("#y#", y);
}
/**
* URL中文字符编码
* @param url
* @return
*/
public static String encode(String s){
return URLEncoder.encode(s);
}
public static void main(String[] args) {
System.out.println(googleToBaidu(31.2306192233586, 121.446663737297));
}
}
Base64Utils代码
使用apache的commons包下面的base64工具类
package com.dooioo.common.utils;
import org.apache.commons.codec.binary.Base64;
/**
* base64加密解密工具 使用apache工具包
*
* @author 刘兴
*
*/
public class Base64Utils {
/**
* base64加密字符串
*
* @param s
* @return
*/
public static String encode(Object s) {
if (s == null)
return null;
Base64 base64 = new Base64();
byte[] enbytes = base64.encode(String.valueOf(s).getBytes());
return new String(enbytes);
}
/**
* base64解密字符串
*
* @param s
* @return
*/
public static String decode(Object s) {
if (s == null)
return null;
Base64 base64 = new Base64();
byte[] debytes = base64.decode(String.valueOf(s).getBytes());
return new String(debytes);
}
public static void main(String[] a) {
System.out.println(Base64Utils.decode("MTE2LjI2MTA5OTEyMjE="));
}
}
DyString类是一个自定义的字符串处理工具类,可以调用apache的工具类StringUtils.isEmpty或isNotEmpty
JsonUtils类是自定义的json字符串处理工具类,内部功能是将json字符串转换成map对象
分享到:
相关推荐
这里我们关注的是一个名为“百度地图坐标拾取器”的工具,该工具能够帮助用户方便地获取百度地图上的坐标,并将其转换为高德地图的坐标系统。 首先,我们要了解的是百度地图和高德地图分别采用的坐标系统。百度地图...
2. `googleToWgs84(x, y)`: 将Google地图坐标转换回WGS84坐标。这个过程是前一步的逆运算,需要对Mercator投影进行反解。 3. `wgs84ToBaidu(lat, lon)`: 将WGS84坐标转换为百度地图的BD-09坐标。百度坐标系的转换...
3. **JS实现**:JavaScript是Web前端的主要编程语言,实现地图坐标转换意味着可以在浏览器端直接进行计算,无需服务器端支持,提高了应用的响应速度和用户体验。 4. **shujvpianyi.js**:这个文件很可能是实现上述...
百度坐标与google坐标之间的相互转换,google坐标与google坐标之间的相互转换。
1. 谷歌地图坐标系统:主要使用WGS84坐标系,这是一个全球通用的大地坐标系统,基于地球椭球体模型,适用于全球范围内的定位和导航。 2. 百度地图坐标系统:采用的是自定义的BD-09坐标系,它是在WGS84基础上进行了...
百度地图极速版开发中使用的坐标转换js文件。 type取值如下: 1:GPS设备获取的角度坐标,wgs84坐标; 2:GPS获取的米制坐标、sogou地图所用坐标; 3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用...
* 谷歌地图采用的是WGS84地理坐标系(中国范围除外); * GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 * 谷歌中国地图和搜搜中国地图采用的...
例如,如果你从一个使用火星坐标的系统获取数据,然后要在百度地图上显示,就必须将火星坐标转换为百度坐标。反之,如果你的数据是在百度地图上获取的,要用于其他系统,也需要将百度坐标转换回火星坐标。这种转换...
本文主要聚焦于Android系统中如何将GPS获取的坐标转换为适用于高德地图的坐标。 首先,我们需要理解不同坐标系统的概念。GPS坐标通常基于WGS84(World Geodetic System 1984)标准,这是一种全球通用的地理坐标系统...
提供百度坐标与WGS84,高德、谷歌坐标与WGS84坐标的转换,提供百度、高德、谷歌与WGS84、火星之间的转换
3. **WGS84到百度转换方法**:相反地,此方法用于将WGS84坐标转换为百度地图的BD-09坐标。同样,会涉及到特定的转换算法。 4. **测试或示例代码**:readme.md文件可能包含了如何使用这个类的示例代码,帮助开发者...
3. **地图API集成**:可能集成了如Google Maps API、高德地图API或百度地图API,获取地图服务并展示坐标。 4. **坐标转换算法**:JavaScript实现坐标转换算法,如proj4js库可以方便地进行坐标投影转换。 5. **数据...
了解这些转换方法后,开发者可以轻松地在不同坐标系之间进行数据交换,比如从百度地图获取的坐标转换成谷歌地图或高德地图可以识别的格式,反之亦然。在使用过程中需要注意的是,由于这些坐标系都是针对地理位置的,...
主要实现了百度地图(BD09)、谷歌地图(GCJ02)、谷歌地球(WGS84)三者坐标系之间互转。懂的人应该就懂了,不懂的就再说明一句。谷歌地图相当于火星坐标系,也就是高德、腾讯坐标系。是个Util,拿去按需调用即可。
当我们需要将百度地图上的坐标数据转换为WGS-84坐标,以便与其他系统(如GPS设备或Google Maps)兼容时,就需要进行坐标转换。本篇将详细介绍如何使用Python进行这种转换,并涉及`bdtowgs.py`这个文件。 首先,`...
该插件用于将常用的非百度坐标(目前支持GPS设备获取的坐标、google地图坐标、soso地图坐标、amap地图坐标、mapbar地图坐标)转换成百度地图中使用的坐标,目前支持数据集批量转换和单点数据转换。
1. **坐标转换**:在进行百度地图和谷歌地图互转时,首要步骤是进行坐标转换。百度地图到谷歌地图的转换通常需要一个转换公式,这个公式可以基于已知的转换参数(如偏移量)来调整坐标值。反之,从谷歌地图到百度...
地图坐标大致分为几种: 1、GPS、WGS84,也就是原始坐标体系,这是国际公认的世界标准坐标体系; 2、GCJ-02,又称为“火星坐标”,国家测绘局在02年发布的坐标体系,在国内,至少得使用此坐标体系,比如:google、...