http接口:
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=108.953582&y=34.276165
(gps坐标转换成百度坐标)
from的值填的是原坐标;to的值填的是准备转换成的坐标;
x填的是经度值;y填的是纬度值。
备注:
gps坐标的type=0
google坐标的type=2
baidu坐标的type=4
下面是java代码
package com.happysys.fatedgar;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.codehaus.jettison.json.JSONObject;
import com.happysys.erp.webapps.util.Messager;
import com.lowagie.text.pdf.codec.Base64;
public class CoordChange {
/**
* 坐标转换 需要引入Javabase64.jar 和Json的一些包
*/
public static String Gps2Baidu(String lnt,String lat){
String str="";
String path = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x="
+ lnt + "+&y=" + lat;
try {
// 使用http请求获取转换结果
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
// 得到返回的结果
String res = outStream.toString();
//System.out.println(res);
JSONObject jsonObj = new JSONObject(res);
String err=jsonObj.getString("error");
if ("0".equals(err)) {
// 编码转换
String x1 = new String(Base64.decode(jsonObj.getString("x")));
String y1 = new String(Base64.decode(jsonObj.getString("y")));
str=x1 + "|" + y1;
}else{
String x1=Messager.getInfo("std.lontitude");
String y1=Messager.getInfo("std.latitude");
str=x1 + "|" + y1;
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
/**
* gps坐标的type=0
* google坐标的type=2
* baidu坐标的type=4
*/
public static String CChange(String lnt,String lat,String from,String to){
String str="";
String path = "http://api.map.baidu.com/ag/coord/convert?from="+from+"&to="+to+"&x="
+ lnt + "+&y=" + lat;
try {
// 使用http请求获取转换结果
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
// 得到返回的结果
String res = outStream.toString();
//System.out.println(res);
JSONObject jsonObj = new JSONObject(res);
String err=jsonObj.getString("error");
if ("0".equals(err)) {
// 编码转换
String x1 = new String(Base64.decode(jsonObj.getString("x")));
String y1 = new String(Base64.decode(jsonObj.getString("y")));
str=x1 + "|" + y1;
}else{
String x1=Messager.getInfo("std.lontitude");
String y1=Messager.getInfo("std.latitude");
str=x1 + "|" + y1;
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
public static void main(String[] args) {
String x = "108.953582";
String y = "34.276165";
System.out.println(Gps2Baidu(x,y));
System.out.println(CChange(x,y,"0","4"));
}
}