⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radiussearchservlet.java

📁 java+mapxtreme 开发校园房管系统
💻 JAVA
字号:
package com.oyc.mapxtreme.servlet;

import java.io.IOException;
import java.net.URLDecoder;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mapinfo.dp.Feature;
import com.mapinfo.dp.FeatureSet;
import com.mapinfo.dp.QueryParams;
import com.mapinfo.dp.SearchType;
import com.mapinfo.dp.util.RewindableFeatureSet;
import com.mapinfo.mapj.MapJ;
import com.mapinfo.util.DoublePoint;
import com.oyc.mapxtreme.dao.SightDAO;
import com.oyc.mapxtreme.dao.TravelAgencyDAO;
import com.oyc.mapxtreme.util.MapSearch;
import com.oyc.mapxtreme.util.StringUtil;
import com.oyc.wakeup.Session;

/**
 * 范围查找
 * @author 三峡大学理学院 欧阳超
 *
 */
public class RadiusSearchServlet extends BaseHttpServlet {

	/**
	 * 根据用户在地图上画的圆形区域进行范围查找
	 * 
	 */
	public void searchInRadius(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//取出页面传来的参数
		double x = Double.parseDouble(request.getParameter("x"));
		double y = Double.parseDouble(request.getParameter("y"));
		double radius = Double.parseDouble(request.getParameter("radius"));
		String layerName = URLDecoder.decode(request.getParameter("layer"),"UTF-8");
		
		//取出mapj对象
		HttpSession session = request.getSession();
		MapJ myMap = (MapJ) session.getAttribute("mapj");
		
		//搜索,取出图元ID,并放入字符串s_id中
		MapSearch mapSrh = new MapSearch();
		String s_id = "";
		try {
			QueryParams params = new QueryParams(SearchType.entire, false, false, false, false, false);
			FeatureSet fs = mapSrh.searchInRadius(myMap, layerName, new DoublePoint(x, y), radius, params);
			Feature feature = null;
			while((feature=fs.getNextFeature()) != null){
				s_id += feature.getAttribute(0).getInt();
				s_id += ";";
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("s_id: "+ s_id);
		//将字符串ID转化为整形ID
		int[] idAry = StringUtil.strToIntArray(s_id, ";");
		System.out.println("idAry length: "+ idAry.length);
		
		//创建DAO,查询数据库
		Session sess = super.getWakeupSession();
		List list = null;
		if(layerName != null && layerName.equals("景点")){
			SightDAO sightDAO = new SightDAO(sess);
			list = sightDAO.searchSightByIDAry(idAry); //查询景点
			sess.close();
			int count = 0;
			if(list != null){
				count = list.size();
			}
			
			request.removeAttribute("sightList");
			request.setAttribute("sightList", list);
			
			request.removeAttribute("sightCount");
			request.setAttribute("sightCount", count+"");
			
			String url = "sightList.jsp";
			super.forward(url, request, response);
			
		}else if(layerName != null &&layerName.equals("旅行社")){
			TravelAgencyDAO taDAO = new TravelAgencyDAO(sess);
			list = taDAO.searchTravelByIDAry(idAry);  //查找旅行社
			sess.close();
			int count = 0;
			if(list != null){
				count = list.size();
			}
			
			request.removeAttribute("taList");
			request.setAttribute("taList", list);
			
			request.removeAttribute("taCount");
			request.setAttribute("taCount", count+"");
			
			String url = "travelList.jsp";
			super.forward(url, request, response);
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -