📄 radiussearchservlet.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 + -