码迷,mamicode.com
首页 > 其他好文 > 详细

过滤所有用户的行车轨迹查找在某一区域内的用户

时间:2015-10-30 17:15:46      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

// 判断经纬度是否在此区域内
	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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!