利用百度LBS做一个小Demo
生活随笔
收集整理的這篇文章主要介紹了
利用百度LBS做一个小Demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
申請ak(即獲取密鑰)
http://lbsyun.baidu.com/apiconsole/key?application=key 去這兒注冊一個開發者賬號即可
拼寫發送http請求的url
譬如這樣的調用
- http://api.map.baidu.com/geocoder/v2/?address=百度大廈&output=json&ak=E4805d16520de693a3fe707cdc962045&callback=showLocation
接收http請求返回的數據
下面看看代碼
????
/**?百度地圖API*/ public?final?class?BaiDuMapApi?{private?static?Map<String,?String>?params?=?CollectionUtil.newHashMap();private?static?final?List<String>?LOCAL_IP?=?Arrays.asList("127.0.0.1",?"localhost");/**?根據ip獲取經緯度*/public?static?Map<String,?String>?getPoint(String?ip)?{params.clear();Map<String,?String>?point?=?CollectionUtil.newHashMap();if?(null?!=?ip?&&?!LOCAL_IP.contains(ip))?{params.put("ip",?ip);}params.put("ak",?BaiDuApi.BD_LBS_AK);params.put("coor",?"bd09ll");String?r?=?HttpKit.get(BaiDuApi.BD_IP_LOCATION_API,?params);String?json?=?StringUtils.unicodeToString(r);Map<String,?Object>?map?=?JSONUtil.json2Map(json);Map<String,?Object>?content?=?JSONUtil.json2Map(map.get("content").toString());Map<String,?String>?xy?=?JSONUtil.json2Map(content.get("point").toString());point.put("latitude",?xy.get("y"));point.put("longitude",?xy.get("x"));return?point;}/**?根據城市和地址獲取經緯度*/public?static?Map<String,?String>?getPoint(String?city,?String?address)?{params.clear();Map<String,?String>?point?=?CollectionUtil.newHashMap();if?(StringUtils.isNotBlank(city)?&&?StringUtils.isNotBlank(address))?{params.put("ak",?BaiDuApi.BD_LBS_AK);params.put("callback",?"renderOption");params.put("output",?"json");params.put("city",?city);params.put("address",?address);String?r?=?HttpKit.get(BaiDuApi.BD_LOCATION2POINT_API,?params);String?json?=?StringUtils.unicodeToString(r.substring(r.indexOf("{"),?r.lastIndexOf("}")?+?1));Map<String,?Object>?map?=?JSONUtil.json2Map(json);Map<String,?Object>?content?=?JSONUtil.json2Map(map.get("result").toString());Map<String,?Object>?location?=?JSONUtil.json2Map(content.get("location").toString());point.put("latitude",?location.get("lat").toString());point.put("longitude",?location.get("lng").toString());}return?point;}/**?根據ip獲取address*/public?static?Map<String,?String>?getAddress(String?ip)?{params.clear();Map<String,?String>?address_detail?=?CollectionUtil.newHashMap();if?(null?!=?ip?&&?!LOCAL_IP.contains(ip))?{params.put("ip",?ip);}params.put("ak",?BaiDuApi.BD_LBS_AK);String?r?=?HttpKit.get(BaiDuApi.BD_IP_LOCATION_API,?params);String?json?=?StringUtils.unicodeToString(r);Map<String,?Object>?map?=?JSONUtil.json2Map(json);Map<String,?Object>?content?=?JSONUtil.json2Map(map.get("content").toString());address_detail?=?JSONUtil.json2Map(content.get("address_detail").toString());return?address_detail;}/**?根據經緯度獲取詳細地址*/public?static?Map<String,?Object>?getAddress(String?latitude,?String?longitude)?{params.clear();Map<String,?Object>?info?=?CollectionUtil.newHashMap();if?(StringUtils.isNotBlank(latitude)?&&?StringUtils.isNotBlank(longitude))?{params.put("callback",?"renderReverse");params.put("ak",?BaiDuApi.BD_LBS_AK);params.put("location",?latitude?+?","?+?longitude);params.put("output",?"json");params.put("pois",?"0");String?r?=?HttpKit.get(BaiDuApi.BD_LOCATION2POINT_API,?params);String?json?=?StringUtils.unicodeToString(r.substring(r.indexOf("{"),?r.lastIndexOf("}")?+?1));Map<String,?Object>?map?=?JSONUtil.json2Map(json);info?=?JSONUtil.json2Map(map.get("result").toString());}return?info;}} /**?百度地圖API測試*/ public?class?Test?{public?static?void?main(String[]?args)?{//獲取地址信息Map<String,?String>?m1?=?BaiDuMapApi.getAddress(null);System.out.println(m1);//獲取經緯度信息Map<String,?String>?m2?=?BaiDuMapApi.getPoint(null);System.out.println(m2);//根據城市獲取經緯度Map<String,?String>?m3?=?BaiDuMapApi.getPoint("上海市",?"東方明珠");System.out.println(m3);//根據經緯度獲取地址Map<String,?Object>?m4?=?BaiDuMapApi.getAddress(m3.get("latitude"),?m3.get("longitude"));System.out.println(m4);} }????
{province=上海市,?city=上海市,?street=,?district=,?street_number=,?city_code=289} {latitude=31.24916171,?longitude=121.48789949} {latitude=31.244750205504,?longitude=121.50713723717} {formatted_address=上海市浦東新區陸家嘴環路1388號,?business=東外灘,陸家嘴,外灘,?cityCode=289,?location={"lat":31.244750051136,"lng":121.50713723717},?addressComponent={"city":"上海市","district":"浦東新區","province":"上海市","street":"陸家嘴環路","street_number":"1388號"}}轉載于:https://my.oschina.net/biezhi/blog/299295
總結
以上是生活随笔為你收集整理的利用百度LBS做一个小Demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到开车撞到人了是什么意思
- 下一篇: vSphere5.5安装教程