百度坐标转WGS84(即GPS)坐标

单个在线转换:

地址:http://www.gpsspg.com/maps.htm

参数说明:

GPS 坐标 / WGS84,适用于谷歌地球 Google Earth。 Google 坐标,适用于 Google Maps 地图模式。 百度坐标,适用于百度地图。 高德坐标 / 腾讯坐标,适用于高德地图 / 腾讯地图。

Mapbar 图吧坐标,适用于图吧地图。

以下是批量转换:

serviceimpl层:

        /**
	 * 转换坐标百度坐标--->WGS84坐标系
	 */
	@Override
	public Map<String, Object> baiduToGPS(Map<String, Object> mapParam) throws ServiceLocatorException {
		String convertUrl = "http://api.gpsspg.com/convert/coord/?oid=****&key=*****************&from=2&to=0&latlng=";
		try {
			Map map = new HashMap();
			List<Map<String, Object>> DemoGPSlist = serviceDemo.selectDemo(map);
			for (Map<String, Object> BaiduGPSMap : DemoGPSlist) {
				String id = (String) BaiduGPSMap.get("ID");
				String gisX = (String) BaiduGPSMap.get("GIS_X");
				String gisY = (String) BaiduGPSMap.get("GIS_Y");

				if (StringUtils.isNotBlank(gisY) && StringUtils.isNotBlank(gisX)) {
					String[] bzb = { gisY, gisX };
					String url = convertUrl + StringUtils.join(bzb, ",");
					String bjson = JoddHttpUtils.postForm_1(url);
					if (StringUtils.isNotBlank(bjson)) {
						JSONObject bJSONObject = JSONObject.parseObject(bjson);
						int status = (int) bJSONObject.get("status");
						if (status == 200) {
							JSONArray result = (JSONArray) bJSONObject.get("result");
							if (result != null && result.size() > 0) {
								JSONObject zbObject = (JSONObject) result.get(0);
								String x = "";
								String y = "";
								if (zbObject.get("lng") != null) {
									x = zbObject.get("lng") + "";
								}
								;
								if (zbObject.get("lat") != null) {
									y = zbObject.get("lat") + "";
								}
								;
								if (!"null".equals(x) && !"null".equals(y) && StringUtils.isNotBlank(x)
										&& StringUtils.isNotBlank(y)) {
									Map updateMap = new HashMap();
									updateMap.put("ID", id);
									updateMap.put("GPSX84", x);
									updateMap.put("GPSY84", y);
									iDao.updateDemo(updateMap);
								}
							}
						}
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			log.error(e.getMessage());
		}
		return null;
	}

util类:

package com.demo.util;
import java.util.Map;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
public class JoddHttpUtils {
	public static String postForm_1(String URL) {
		String json="";
		try {
			HttpResponse response = HttpRequest
			        .get(URL)
			        .send();
			if (response!=null) {
				json= response.bodyText();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json;
	}
}

serviceimpl层中的这句代码中的oid与key参考下图

http://api.gpsspg.com/convert/coord/?oid=****&key=*****************&from=2&to=0&latlng=

oid和key需要注册GPSspg账号才有,from=2&to=0参考以下说明:

API地址:http://www.gpsspg.com/api/convert/latlng/

测试类:

@Test
public void baiduToGPS(){
    try {
        Demo.baiduToGPS(null);	
    } catch (Exception e) {
	e.printStackTrace();
    }
}


经验分享 程序员 微信小程序 职场和发展