百度坐标转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();
    }
}


  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小熊猫呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值