java基站定位接口实例
生活随笔
收集整理的這篇文章主要介紹了
java基站定位接口实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該接口基于LBS數據倉庫
接口地址:http://api.cellocation.com:81/cell/
支持格式: CSV/JSON/XML
請求方式: GET
請求示例:http://api.cellocation.com:81/cell/?mcc=460&mnc=1&lac=4301&ci=20986&output=xml
| 名稱 | 類型 | 必填 | 說明 |
| mcc | int | 是 | mcc國家代碼:中國代碼 460 |
| mnc | int | 是 | mnc網絡類型:0移動,1聯通(電信對應sid),十進制 |
| lac | int | 是 | lac(電信對應nid),十進制 |
| ci | int | 是 | cellid(電信對應bid),十進制 |
| coord | string | 否 | 坐標類型(wgs84/gcj02/bd09),默認wgs84 |
| output | string | 否 | 返回格式(csv/json/xml),默認csv |
返回數據格式:CSV
errcode,緯度,經度,精度半徑,地址
errcode
0: 成功
10000: 參數錯誤
10001: 無查詢結果
示例:
0,39.999024,116.476159,222,”北京市朝陽區望京街道北京市望京實驗學校(寶星分校);阜安路與宏泰東街路口西231米”
?
java實例:
public class LocationUtils {private static final Logger _log = Logger.getLogger(LocationUtils.class);private static LocationDao locationDao;private static String ENCODING = "UTF-8";private static int CONNECT_TIMEOUT = 30000;// private static int READ_TIMEOUT = 10000;private static int READ_TIMEOUT = 30000;/*** 獲取具體的位置* @param mnc* @param mcc* @param lac* @param ci* @return*/public static Location getLocation(int mnc, int mcc, int lac, int ci) {Location location = new Location();HttpURLConnection conn = null;BufferedReader br = null;try {StringBuffer sb = new StringBuffer();sb.append("http://api.cellocation.com:81/cell?output=json");sb.append("&mnc=").append(mnc);sb.append("&mcc=").append(mcc);sb.append("&lac=").append(lac);sb.append("&ci=").append(ci);URL url = new URL(sb.toString());conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod(ReqMethod.GET);conn.setRequestProperty("Accept-Charset", ENCODING);conn.setRequestProperty("contentType", "application/json; charset=" + ENCODING);conn.setConnectTimeout(CONNECT_TIMEOUT);conn.setReadTimeout(READ_TIMEOUT);_log.info("line--------"+sb.toString()); // int responseCode = conn.getResponseCode(); // _log.debug("responseCode-> " + responseCode);br = new BufferedReader(new InputStreamReader(conn.getInputStream(), ENCODING));String line = null;StringBuffer buffer = new StringBuffer();while ((line = br.readLine()) != null) {buffer.append(line);}line = buffer.toString();JSONObject obj = JSONObject.fromObject(line);if(obj.getInt("errcode") == 0){location.setSuccess(true);location = (Location) JSONObject.toBean(obj, Location.class);_log.info("--1:"+obj.getString("address"));}else{location.setSuccess(true);location.setErrcode(obj.getInt("errcode")+"");}} catch (Exception e) {_log.error(e.getMessage());e.printStackTrace();}finally{if(br != null){try{br.close();}catch(IOException e){_log.error("close stream error -> " + e);}}if (conn != null) {conn.disconnect();}}return location;}public static double distance(double lon1, double lat1, double lon2, double lat2) {double a, b, R;R = 6378137; // 地球半徑lat1 = lat1 * Math.PI / 180.0;lat2 = lat2 * Math.PI / 180.0;a = lat1 - lat2;b = (lon1 - lon2) * Math.PI / 180.0;double d;double sa2, sb2;sa2 = Math.sin(a / 2.0);sb2 = Math.sin(b / 2.0);d = 2 * R * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1) * Math.cos(lat2) * sb2 * sb2));return d;}public static String getENCODING() {return ENCODING;}public static void setENCODING(String eNCODING) {ENCODING = eNCODING;}public static int getCONNECT_TIMEOUT() {return CONNECT_TIMEOUT;}public static void setCONNECT_TIMEOUT(int cONNECT_TIMEOUT) {CONNECT_TIMEOUT = cONNECT_TIMEOUT;}public static int getREAD_TIMEOUT() {return READ_TIMEOUT;}public static void setREAD_TIMEOUT(int rEAD_TIMEOUT) {READ_TIMEOUT = rEAD_TIMEOUT;}public LocationDao getLocationDao() {return locationDao;}public void setLocationDao(LocationDao locationDao) {this.locationDao = locationDao;}}?
總結
以上是生活随笔為你收集整理的java基站定位接口实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 防止url重复请求_Web项目
- 下一篇: rs232读取智能电表_三相电表怎么看度