天地图标记点

<div id="map" style="width: 100%; height: 100%"></div>

 初始化地图

this.map = new T.Map("map");
this.map.centerAndZoom(new T.LngLat(116.3912757, 39.906217), 11);


//接口返回数据为resourceList
 if (this.maker) {
        this.maker.forEach((res) => {
          this.map.removeLayer(res);
        });
      }
      // 显示标记。
      if (resourceList?.devices) {
        this.maker = []; // 重置maker数组
        resourceList.devices.forEach((item) => {
          if (item.longitudeLatitude) {
            let marker2;
            marker2 = this.createMarker(item);
            const markerInfoWin = this.createInfoWindow(item);
            marker2.addEventListener("click", function () {
              marker2.openInfoWindow(markerInfoWin);
            });
            this.map.addOverLay(marker2);
            this.maker.push(marker2);
          }
       });
 }

 创建标记

createMarker(item, index) {
      return new T.Marker(
        new T.LngLat(
          item.longitudeLatitude.split(",")[0],
          item.longitudeLatitude.split(",")[1]
        ),
        {
          icon: new T.Icon({
            iconUrl: require("@/assets/resource/1.png"),
            iconSize: new T.Point(20, 20),
          }),
        }
     );
},

窗口信息

createInfoWindow(item) {
      return new T.InfoWindow(item.orgName + "" + item.deviceName, {
        autoPan: true,
        minWidth: 100,
      });
},

Vue 和天地图(Tencent Map)结合可以方便地在前端应用中创建交互式地图并添加自定义标记(撒点)。要在 Vue 项目中实现这一功能,通常需要遵循以下步骤: 1. **安装依赖**:首先,你需要在项目中引入 Vue 的官方库,以及天地图 JavaScript API。你可以通过npm或yarn安装`vue-maps`这个插件,它提供了 Vue 对腾讯地图的支持。 ```bash npm install vue-maps tencent-map --save ``` 2. **配置地图**:在你的 Vue 组件中,导入 `AMap` 类,并初始化地图实例。设置地图容器的 ID 或者直接绑定到 DOM 元素上。 ```html <template> <div id="map" ref="map"></div> </template> <script> import { AMap } from 'tencent-map'; export default { setup() { const map = ref(new AMap.Map('map', { zoom: 10, center: [116.404, 39.915] // 北京坐标 })); return { map }; } } </script> ``` 3. **添加标记**:在组件内部或者某个方法中,可以动态生成并添加标记到地图上。例如,你可以在数据中存储点的信息,然后在适当的时候调用 `addMarker` 方法。 ```javascript data() { return { markers: [ { name: '点1', location: [116.397, 39.918] }, { name: '点2', location: [116.406, 39.921] } ] } }, methods: { addMarkers() { this.markers.forEach(marker => { const markerPosition = new AMap.LngLat(marker.location, marker.location); map.value.addMarker({ position: markerPosition, title: marker.name }); }); } }, ``` 4. **触发事件或操作**:可以根据用户的需求,监听地图事件(如点击标记),或者在特定条件下更新、删除标记。 ```javascript mounted() { this.addMarkers(); map.value.addEventListener('click', e => { console.log(e.point); }); }, ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值