poiRouter.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. // POI模块
  2. const express = require("express");
  3. const router = express.Router();
  4. const pgClient = require("../../core/pgClient/pgClient.js");
  5. /* 1.查询单个poi */
  6. router.get("/search", function(req, res) {
  7. let name = req.poiname
  8. let tablename = req.tablename
  9. let sql = `select * from ${tablename} where name like '%name%'`;
  10. // 执行sql
  11. pgClient.query(sql).then((data) => {
  12. res.send(data.rows);
  13. });
  14. });
  15. /* 1.查询单个poi */
  16. router.get("/search111", function(req, res) {
  17. // 使用 sqlUtil
  18. // console.log(req.query.poiname);
  19. // let sql = `select id,name from tianzhen_poi where name like '%${req.query.poiname}%' `;
  20. let sql = `select id,name,cityname,typename,address,st_x(geom) AS lon,st_y(geom) AS lat from tianzhen_poi where name = '${req.query.poiname}' `;
  21. // 执行sql
  22. pgClient.query(sql).then((data) => {
  23. res.send(data);
  24. });
  25. });
  26. /* 2. POI搜索 查询(确保性能,每次只查询500条) */
  27. router.get("/POIsearch", function(req, res) {
  28. let str = req.query.str
  29. let tablename = req.query.tablename
  30. let sql = `SELECT id, adname, cityname, name FROM ${tablename} where name like '%${str}%' or cityname like '%${str}%' or adname like '%${str}%' LIMIT 500;`;
  31. // 执行sql
  32. pgClient.query(sql).then((data) => {
  33. res.send(data.rows);
  34. });
  35. });
  36. /* 3 选中哪条数据,在使用id去查询对应的geom */
  37. router.get("/queryById", function(req, res) {
  38. let id = req.query.id
  39. let tablename = req.query.tablename
  40. let sql = `SELECT st_astext(geom) FROM ${tablename} where id = ${id};`
  41. // 执行sql
  42. pgClient.query(sql).then((data) => {
  43. res.send(data.rows);
  44. });
  45. });
  46. /* 4. POI管理 查询所有 (注:为保证性能,尽量不要使用select * ,需要哪些字段就只返回那个字段) */
  47. router.get("/POIManager_queryAll", function(req, res) {
  48. let tablename = req.query.tablename
  49. let sql = `select id,typename from ${tablename} `;
  50. // 执行sql
  51. pgClient.query(sql).then((data) => {
  52. res.send(data.rows);
  53. });
  54. });
  55. /* 5. POI管理 查询(确保性能,每次只查询500条) */
  56. router.get("/POIManager_queryByTypename", function(req, res) {
  57. let typename = req.query.typename
  58. let tablename = req.query.tablename
  59. let sql = `SELECT name,st_astext(geom) FROM ${tablename} where typename like '%${typename}%';`
  60. // 执行sql
  61. pgClient.query(sql).then((data) => {
  62. res.send(data.rows);
  63. });
  64. });
  65. router.get("/searchPoiByclassname", function(req, res) {
  66. // 使用 sqlUtil
  67. let sql = `select name,typename,st_x(geom) AS lon,st_y(geom) AS lat from tianzhen_poi where typename like '%${req.query.poiClassName}%' limit 1000 `;
  68. // 执行sql
  69. pgClient.query(sql).then((data) => {
  70. res.send(data);
  71. });
  72. });
  73. /* 1.查询单个poi */
  74. router.get("/searchByRange", function(req, res) {
  75. let sql = `select name,st_x(geom) AS lon,st_y(geom) AS lat from tianzhen_poi
  76. where name like '%${req.query.queryString}%'
  77. order by id asc limit 10`;
  78. // 执行sql
  79. pgClient.query(sql).then((data) => {
  80. res.send(data.rows);
  81. });
  82. });
  83. /* 1.获取所有灾害点数据 */
  84. router.get("/getzhd", function(req, res) {
  85. //直接拼接
  86. let sql = `select id,leixing,xinxi,st_x(geom) AS lon,st_y(geom) AS lat from public.zaihaidian `;
  87. console.log(sql);
  88. /* 执行-并把值返回前端 */
  89. pgClient.query(sql).then(data => {
  90. res.send(data.rows)
  91. // console.log(data.rows);
  92. });
  93. });
  94. /* 1.查询单个地质灾害点 */
  95. router.get("/zhdsearch", function(req, res) {
  96. // 使用 sqlUtil
  97. // console.log(req.query.poiname);
  98. // let sql = `select id,name from tianzhen_poi where name like '%${req.query.poiname}%' `;
  99. let sql = `select id,leixing,xinxi,st_x(geom) AS lon,st_y(geom) AS lat from zaihaidian where id = '${req.query.zhdid}' `;
  100. // 执行sql
  101. pgClient.query(sql).then((data) => {
  102. res.send(data);
  103. });
  104. });
  105. module.exports = router;