vue3制作地图,可接口,图标可调

简介: vue3制作地图,可接口,图标可调
AMapLoader.load({
  key: "346e4aa4dc6444f5a7f69bf1ff66ca1a", // 申请好的Web端开发者Key,首次调用 load 时必填
  version: "1.4.15", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
  plugins: [], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
  AMapUI: {
    // 是否加载 AMapUI,缺省不加载
    version: "1.1", // AMapUI 缺省 1.1
    plugins: [], // 需要加载的 AMapUI ui插件
  },
  Loca: {
    // 是否加载 Loca, 缺省不加载
    version: "1.3.2", // Loca 版本,缺省 1.3.2
  },
}).then((AMap) => {
  fnsss();
  var map = new AMap.Map("container", {
    resizeEnable: true,
    // center: [res.data.data[i].lng, res.data.data[i].lat],
    center: [scenic.value[0].lng, scenic.value[0].lat], //中心点坐标
    zoom: 12,
  });
  let datado = [];
  for (let i = 0; i < scenic.value.length; i++) {
    var marker = new AMap.Marker({
      position: new AMap.LngLat(
        Number(scenic.value[i].lng),
        Number(scenic.value[i].lat)
      ), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
      // center: [lng_lst.value[i].lng, lng_lst.value[i].lat],                 //中心点坐标
      // icon: identification.value[types.value],
      // anchor: "bottom-center",
      // offset: new AMap.Pixel(100, 100),
      // imageSize: new AMap.Size(100, 100), // 根据所设置的大小拉伸或压缩图片
      icon: new AMap.Icon({
        image: identification.value[types.value],
        size: new AMap.Size(52, 52), //图标大小
        imageSize: new AMap.Size(56, 56),
      }),
    });
    map.add(datado);
    // 设置label标签
    // label默认蓝框白底左上角显示,样式className为:amap-marker-label
    marker.setLabel({
      direction: "right",
      offset: new AMap.Pixel(-65, -45), //设置文本标注偏移量
      content:
        `<div style="width:80px;height:30px;">
            <p style="display: flex;align-items: center;height:15px;width:100%;justify-content: center;font-weight: bold;">` +
        scenic.value[i].name +
        `</p>
            <p style="display: flex;align-items: center;height:15px;width:100%;justify-content: center;"><span>在线人数</span><span>` +
        scenic.value[i].num +
        `</span></p>
        </div>`, //设置文本标注内容
      // <p style="width:100%;display: flex;justify-content: center;"><b>`+ res.data.tab[i].create_time + `</b></p>
    });
    //   lngg.push(marker);
    datado.push(marker);
    //   map.add(lngg);
    map.add(datado);
  }
});


相关文章
|
2月前
|
JavaScript 前端开发 安全
Vue 3
Vue 3以组合式API、Proxy响应式系统和全面TypeScript支持,重构前端开发范式。性能优化与生态协同并进,兼顾易用性与工程化,引领Web开发迈向高效、可维护的新纪元。(238字)
574 139
|
2月前
|
缓存 JavaScript 算法
Vue 3性能优化
Vue 3 通过 Proxy 和编译优化提升性能,但仍需遵循最佳实践。合理使用 v-if、key、computed,避免深度监听,利用懒加载与虚拟列表,结合打包优化,方可充分发挥其性能优势。(239字)
272 1
|
3月前
|
开发工具 iOS开发 MacOS
基于Vite7.1+Vue3+Pinia3+ArcoDesign网页版webos后台模板
最新版研发vite7+vue3.5+pinia3+arco-design仿macos/windows风格网页版OS系统Vite-Vue3-WebOS。
436 11
|
2月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
306 0
|
4月前
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
489 1
|
3月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
346 2
|
2月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
320 137
|
6月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
829 0
|
6月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
7月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
925 77