map.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { fetch as myFetch } from "./fetch";
  2. const amapFile = require("@/libs/amap-wx.130.js");
  3. // 高德地图微信组件
  4. const myAmapFun = new amapFile.AMapWX({
  5. key: "dc4bf920c8c1ef8b6f316f4ebcf0a9e2",
  6. });
  7. const mapKey = "8ad6b1c0f18f26a721871ca50e751ef9"; // 高德地图web api
  8. const API = {
  9. geo: "https://restapi.amap.com/v3/geocode/geo", //地理编码 API 服务
  10. };
  11. /*高德地图 */
  12. export const geocoder = (data) => {
  13. data = { ...data, key: mapKey };
  14. return myFetch(API.geo, "get", data, "form");
  15. };
  16. export const apiSearch = (data = { keyword: "", location: "" }) => {
  17. return new Promise((resolve, reject) => {
  18. myAmapFun.getPoiAround({
  19. location: data.location,
  20. querykeywords: data.keyword,
  21. querytypes:data.querytypes,
  22. success: (res) => {
  23. console.log("阿里地图", res);
  24. const poisData = res.poisData;
  25. const rawMarkers=res.markers;
  26. let addressList = [];
  27. let markers = [];
  28. for (var i = 0; i < poisData.length; i++) {
  29. addressList.push({
  30. title: poisData[i].name,
  31. address: `${poisData[i].cityname}${poisData[i].adname}${poisData[i].address}`,
  32. distance: (poisData[i].distance / 1000).toFixed(1),
  33. latitude: Number(poisData[i].location.split(",")[1]),
  34. longitude: Number(poisData[i].location.split(",")[0]),
  35. adname: poisData[i].adname,
  36. tel: poisData[i].tel,
  37. });
  38. rawMarkers[i].title=rawMarkers[i].name;
  39. rawMarkers[i].name= "";
  40. rawMarkers[i].iconPath= "/static/images/common/point.png";
  41. }
  42. addressList.forEach(
  43. (item) => (item.title = item.title.replace(/奉化市/g, `奉化区`))
  44. );
  45. /* if (data.keyword === "核酸") {
  46. addressList = addressList.filter(
  47. (item) => item.adname.district === "奉化区"
  48. );
  49. } */
  50. markers =
  51. rawMarkers.length > data.numberLimit
  52. ? rawMarkers.slice(0, data.numberLimit)
  53. : rawMarkers;
  54. addressList =
  55. addressList.length > data.numberLimit
  56. ? addressList.slice(0, data.numberLimit)
  57. : addressList;
  58. resolve({ addressList ,markers});
  59. },
  60. fail: (error) => {
  61. console.log(error);
  62. reject(error);
  63. },
  64. });
  65. });
  66. };