Java调用百度API将GPS坐标转为百度地图坐标

来源:互联网 发布:雷劈数算法 编辑:程序博客网 时间:2024/05/22 23:23

本文使用的是百度地图提供的API来进行转换:百度坐标转换API

坐标转换服务每日请求次数上限为10万次,每次最多支持100个坐标点的转换,若需更高配额,请申请开发者认证以获取更高配额和更及时技术支持。

-------------------------------------------------------------------------------------------------------

最近我申请的认证下来啦,可以提高额度至每天30万次,可在服务列表中查看自己的各项服务限制情况,如果不够还可以点击继续申请更高的配额。


-------------------------------------------------------------------------------------------------------

可能申请开发者认证后,调用的配额可能会有所提高吧。

具体的参数我就不说了,直接来事例:

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import org.apache.log4j.Logger;public class AppSendUtils {private static final Logger Log = Logger.getLogger(AppSendUtils.class);public static String connectURL(String dest_url, String commString) {String rec_string = "";URL url = null;HttpURLConnection urlconn = null;OutputStream out = null;BufferedReader rd = null;try {url = new URL(dest_url);urlconn = (HttpURLConnection) url.openConnection();urlconn.setReadTimeout(1000 * 30);//urlconn.setRequestProperty("content-type", "text/html;charset=UTF-8");urlconn.setRequestMethod("POST");urlconn.setDoInput(true); urlconn.setDoOutput(true);out = urlconn.getOutputStream();out.write(commString.getBytes("UTF-8"));out.flush(); out.close();rd = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));StringBuffer sb = new StringBuffer();int ch;while ((ch = rd.read()) > -1)sb.append((char) ch);rec_string = sb.toString();} catch (Exception e) {Log.error(e, e);return "";} finally {try {if (out != null) {out.close();}if (urlconn != null) {urlconn.disconnect();}if (rd != null) {rd.close();}} catch (Exception e) {Log.error(e, e);}}return rec_string;}public static void main(String[] args) {String coords = "106.6519570767,26.6245856997";String result =connectURL("http://api.map.baidu.com/geoconv/v1/?coords="+coords+"&from=1&to=5&output=json&ak=***你的ak***","");System.out.println(result);}}
调用结果:{"status":0,"result":[{"x":106.66204066751,"y":26.627042409475}]}

如果你的应用不用特别精准的定位的话,没有必要转换这一次~比如你只需要定位当前城市,就没有必要转换啦。

值得注意的是在批量转换的时候,最后的";"不能要

比如这样的请求:String coords = "106.6523052200,26.6246474700;106.6524859700,26.6251858100;106.6519570767,26.6245856997;";

则会报错:{"status":24,"message":"param error:coords format error","result":[]}

把字符串中最后一个“;”去掉就OK啦。

下面来欣赏一张转换过后跟转换之前的行驶线路图:





-----------------------------------------------------------------------------------------------------------------

另外如果是Android的话,只需要集成百度计算工具的sdk就能直接调用啦:

//将GPS设备采集的原始GPS坐标转换成百度坐标    CoordinateConverter converter  = new CoordinateConverter();    converter.from(CoordType.GPS);//sourceLatLng待转换坐标converter.coord(new LatLng(sysGps.getLatitude(),sysGps.getLongitude()));LatLng desLatLng = converter.convert();
其中new LatLng(纬度,经度)

得到的desLatLng对象,直接点属性desLatLng.longitude,desLatLng.latitude就能得到对应的经纬度啦。



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果电量跳电怎么办 ipad需要激活锁怎么办 电脑应用软件打不开了怎么办? ipad屏幕黑屏了怎么办 ipad挂机黑屏怎么办啊 ipad拍照坏了怎么办 ipad更新系统黑屏怎么办 苹果8卡机后黑屏怎么办 平板电脑开机黑屏怎么办 ipad黑屏有微光怎么办 苹果手机发热黑屏怎么办 ipadair开不了机怎么办 ipad3开不了机怎么办 ipad电源键失灵怎么办 ipad开关键失灵怎么办 ipadair关不了机怎么办 联想电脑开不了机怎么办 ipad来不了机怎么办 深圳车牌租用怎么办的 电脑连wiwf老掉线怎么办 电脑要设置密码怎么办 苹果笔记本电脑忘记密码怎么办 换了外屏有缝隙怎么办 苹果7屏幕松动怎么办 平板电脑屏幕一直闪怎么办 平板电脑屏幕模糊了怎么办 平板电脑模糊怎么办啊 苹果没有声音了怎么办 微信视频回声怎么办 苹果手机总卡机不动怎么办 苹果手机不掉电怎么办 iphonex屏幕漏液怎么办 苹果6sp充不进电怎么办 iphone6充电越少怎么办 苹果6不能充电怎么办 脸部苹果肌很大怎么办 液晶屏上有划痕怎么办 苹果手机屏幕翘起来怎么办? iphone5s翘屏了怎么办 lpad触屏失灵怎么办 平板一直重启怎么办