/alaspatial/src/main/java/org/ala/spatial/web/services/PointsWSController.java

http://alageospatialportal.googlecode.com/ · Java · 69 lines · 52 code · 12 blank · 5 comment · 4 complexity · 8d57399b58b10ada9577e55105dbf04d MD5 · raw file

  1. package org.ala.spatial.web.services;
  2. import java.net.URLDecoder;
  3. import javax.servlet.http.HttpServletRequest;
  4. import org.ala.spatial.analysis.service.LoadedPoints;
  5. import org.ala.spatial.analysis.service.LoadedPointsService;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.ResponseBody;
  10. /**
  11. *
  12. * @author adam
  13. */
  14. @Controller
  15. @RequestMapping("/ws/points/")
  16. public class PointsWSController {
  17. @RequestMapping(value = "/register", method = RequestMethod.POST)
  18. public
  19. @ResponseBody
  20. String register(HttpServletRequest req) {
  21. try {
  22. String[] pointsString = req.getParameter("points").split("\n");
  23. String idss = req.getParameter("ids");
  24. String[] ids = null;
  25. if (idss != null) {
  26. ids = idss.split("\n");
  27. }
  28. String name = URLDecoder.decode(req.getParameter("name"), "UTF-8");
  29. double[][] points = new double[pointsString.length][2];
  30. String[] line;
  31. int count = 0;
  32. for (int i = 0; i < pointsString.length; i++) {
  33. line = pointsString[i].split(",");
  34. try {
  35. points[count][0] = Double.parseDouble(line[0]);
  36. points[count][1] = Double.parseDouble(line[1]);
  37. count++;
  38. } catch (Exception e) {
  39. }
  40. }
  41. //resize
  42. double[][] pointsTrimmed = new double[count][2];
  43. for (int i = 0; i < count; i++) {
  44. pointsTrimmed[i][0] = points[i][0];
  45. pointsTrimmed[i][1] = points[i][1];
  46. }
  47. points = pointsTrimmed;
  48. String id = String.valueOf(System.currentTimeMillis());
  49. LoadedPointsService.addCluster(id, new LoadedPoints(points, name, ids));
  50. return id;
  51. } catch (Exception e) {
  52. System.out.println("Error processing Sampling request:");
  53. e.printStackTrace(System.out);
  54. }
  55. return "";
  56. }
  57. }