标签:
// 判断经纬度是否在此区域内 public void selectDevice2() throws IOException{ String birthday = device.getBirthday(); String Position1 = device.getJingweidu1(); String Position2 = device.getJingweidu2(); // 创建表 String IMSIPositionTableName = "IMSIP_"+birthday; // 判断是否有统计报告表 if(judgeTable(IMSIPositionTableName)){ // 有表 }else { // 没有表,创建 String createdIMSIPositionTableOK = db.createdIMSIPositionTable(IMSIPositionTableName).toString(); if(responseutil.getResultData(createdIMSIPositionTableOK).equals("OK")){ // 创建成功 String TableName = "Z_"+birthday; String selectAllPositionOk = db.selectAllPosition(TableName).toString(); if (responseutil.getResultData(selectAllPositionOk).equals("OK")) { String rowsData = responseutil.getRowsData(selectAllPositionOk); JSONResolveArray(rowsData, Position1, Position2, IMSIPositionTableName); }else { System.out.println("失败:"+selectAllPositionOk); } } } // 查询数据 String selectIMSIPositionOK = db.selectIMSIPosition(IMSIPositionTableName).toString(); if(responseutil.getResultData(selectIMSIPositionOK).equals("OK")){ response.addHeader("Content-Type", "text/plain; charset=UTF-8"); response.getWriter().print(selectIMSIPositionOK); }else { response.addHeader("Content-Type", "text/plain; charset=UTF-8"); response.getWriter().print("NO"); } } // 解析JSON数组2 public String JSONResolveArray(String ResponseStr, String Position1, String Position2, String IMSIPositionTableName) { String returnArrayStr = ""; // 处理需要判断的区域 String[] Position1Arr = Position1.split(","); String[] Position2Arr = Position2.split(","); double minLongitude = Double.parseDouble(Position1Arr[0]); double minLatitude = Double.parseDouble(Position1Arr[1]); double maxLongitude = Double.parseDouble(Position2Arr[0]); double maxLatitude = Double.parseDouble(Position2Arr[1]); JSONArray arr = null; try { arr = new JSONArray(ResponseStr); for (int i = 0; i < arr.length(); i++) { JSONArray temp = (JSONArray) arr.get(i); for (int j = 0; j < temp.length(); j++) { if (j%2 == 0) { // IMSI // System.out.println(temp.getString(j)); }else { // 轨迹数据 String[] positionsArr = temp.getString(j).split("\\|"); // 取出第一个轨迹 String[] positionArr = positionsArr[0].split(","); // 数据库的数据 Double Longitude =Double.parseDouble(positionArr[0]); Double Latitude = Double.parseDouble(positionArr[1]); // 判断数据是否再次区域 if (Longitude>minLongitude && Latitude>minLatitude && Longitude<maxLongitude && Latitude<maxLatitude) { System.out.println("在这个区域"); String IMSI = temp.getString(0); System.out.println(positionArr[0]+" "+positionArr[1]+" "+temp.getString(0)); String City = Responseutil.GetCity(Latitude+","+Longitude,"city");// 调用封装的获取城市名称的方法 String Province = Responseutil.GetCity(Latitude+","+Longitude,"province"); System.out.println("所在省份:"+Province); System.out.println("所在城市:"+City); // 查询IMSI信息,将使用时间存入数据库 String selectIMSI_INFOOK = db.selectIMSI_INFO2(IMSI).toString(); String infoData = responseutil.JSONResolveArray(responseutil.getRowsData(selectIMSI_INFOOK), "#"); String statisticsInfo = infoData+Latitude+","+Longitude+"#"+City+"#"+Province;// 要存的信息 System.out.println("statisticsInfo:"+statisticsInfo); String SIArr[] = statisticsInfo.split("#"); System.out.println(SIArr[0]+","+ SIArr[1]+","+ SIArr[2]+","+ SIArr[3]+","+ SIArr[4]+","+ SIArr[5]+","+ SIArr[6]+","+ SIArr[7]+","+ SIArr[8]+","+ SIArr[9]+","+ SIArr[10]); // 存入数据库 String insertIMSIPositionOK = db.insertIMSIPosition(IMSIPositionTableName, SIArr[0], SIArr[1], SIArr[2], SIArr[3], SIArr[4], SIArr[5], SIArr[6], SIArr[7], SIArr[8], SIArr[9], SIArr[10]).toString(); if(responseutil.getResultData(insertIMSIPositionOK).equals("OK")){ System.out.println("存入成功"); }else { System.out.println("存入失败"); } break; } } } } } catch (Exception e) { e.printStackTrace(); } return returnArrayStr; }
标签:
原文地址:http://my.oschina.net/hehongbo/blog/524027