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

        此坐标转换用的是GPSspg的API,如果您需要转几个的话还是在线转效率比较高;如果量比较大的话,转换不超过2000次/天,可以用此方法(免费);如果量很大的话,推荐订阅较高级的套餐。

单个在线转换:

地址: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();
    }
}


猜你喜欢

转载自blog.csdn.net/GXL_1012/article/details/80483521