首先试过了timeout的方法,但可能是个人情况不一样,并没有解决该问题

mounted() {
            setTimeout(index=>{
                this.onLoad()
            },500)
        }
onLoad() {
                this.map = new T.Map("mapDiv");
                ...               
            }

后面看到了另一位大佬文章里面的相关注释才知道仅仅只差了一行代码

	mounted() {
      this.initwxMap();
    },
   onLoad() {
  // vue项目需要先声明 T = window.T,不然后面无法获取到。
  var T = window.T;
  this.map = new T.Map('mapDiv')
  this.map.centerAndZoom(new T.LngLat(this.position.lon, this.position.lat), this.zoom)
  let ctrl = new T.Control.MapType([
    {
      title: '地图', //地图控件上所要显示的图层名称
      icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/vector.png', //地图控件上所要显示的图层图标(默认图标大小80x80)
      layer: TMAP_NORMAL_MAP //地图类型对象,即MapType。
    },
    {
      title: '卫星混合',
      icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/satellitepoi.png',
      layer: TMAP_HYBRID_MAP
    },
    {
      title: '卫星',
      icon: ' http://api.tianditu.gov.cn/v4.0/image/map/maptype/satellite.png',
      layer: TMAP_SATELLITE_MAP
    }])
  // 比例尺控件
  let scale = new T.Control.Scale({
  })
  // 缩放控件
  // let zoom_control = new T.Control.Zoom()
  // 鹰眼控件
  let miniMap = new T.Control.OverviewMap({
    isOpen: true,
    size: new T.Point(150, 150),
  })
  ctrl.setPosition(T_ANCHOR_BOTTOM_LEFT)
  scale.setPosition(T_ANCHOR_BOTTOM_LEFT)
  // zoom_control.setPosition(T_ANCHOR_BOTTOM_LEFT)
  //添加缩放平移控件
  this.map.addControl(ctrl)
  this.map.addControl(scale)
  // this.map.addControl(zoom_control)
  this.map.addControl(miniMap)
  this.map.enableScrollWheelZoom()
  this.map.setMapType(TMAP_HYBRID_MAP)


  //创建标注工具对象
  let polygonTool = new T.PolygonTool(this.map, this.config)

}
}

第一个方法原文地址
第二个方法原文地址
本文仅为记录本小白在前端遇见的一些问题

Logo

前往低代码交流专区

更多推荐