uniapp 天地图 引入多js文件写法;附天地图车辆轨迹

展示:车辆轨迹

在JSAPI中: 

引入多js文件:

用uniapp的写法:

uniapp写法参考:
 

<template>
  <view class="container">
    <!-- 地图容器 -->
    <view id="mapDiv" style="width: 100%; height: 400px;"></view>

    <!-- 控制按钮 -->
    <view>
      <button @click="startTrack">开始</button>
      <button @click="pauseTrack">暂停</button>
      <button @click="stopTrack">结束</button>
    </view>
  </view>
</template>

<script>
	import config from '@/config.js'
export default {
  data() {
    return {
      map: null, // 地图实例
      carTrack: null, // 车辆轨迹实例
      tileLayer: null, // 瓦片层
      datas: [], // 用于存储轨迹数据
    };
  },
  onReady() {
    // 页面加载完成后初始化地图
    this.initMap();
  },
  methods: {
    // 初始化地图
    initMap() {
      // 动态引入天地图和相关脚本
      const script = document.createElement('script');
      script.src = "http://api.tianditu.gov.cn/api?v=4.0&tk="+config.tiandimap_key; // 替换为你的天地图密钥
      script.onload = () => {
        this.loadCarTrackScripts();
      };
      document.body.appendChild(script);
    },

    // 引入车辆轨迹相关的脚本
    loadCarTrackScripts() {
      const carTrackScript = document.createElement('script');
      carTrackScript.src = "http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/CarTrack.js";
      carTrackScript.onload = () => {
        this.loadD3Scripts();
      };
      document.body.appendChild(carTrackScript);
    },
	
	// 引入2
	loadD3Scripts() {
	  const d3Script = document.createElement('script');
	  d3Script.src = "http://lbs.tianditu.gov.cn/js/lib/d3/d3.min.js";
	  d3Script.onload = () => {
	    this.loadSvgScripts() ;
	  };
	  document.body.appendChild(d3Script);
	},
	
	// 引入3
	loadSvgScripts() {
	  const svgScript = document.createElement('script');
	  svgScript.src = "http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/D3SvgOverlay.js";
	  svgScript.onload = () => {
	    this.loadPointScripts();
	  };
	  document.body.appendChild(svgScript);
	},
	
	// 引入4
	loadPointScripts() {
	  const pointScript = document.createElement('script');
	  pointScript.src = "http://lbs.tianditu.gov.cn/api/js4.0/opensource/data/point.js";
	  pointScript.onload = () => {
	    this.createMap();
	  };
	  document.body.appendChild(pointScript);
	},
	
	

    // 创建地图实例
    createMap() {
      // 创建天地图的瓦片图层
      this.tileLayer = new T.TileLayer("http://t4.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk="+config.tiandimap_key);

      // 创建地图实例并设置初始位置
      this.map = new T.Map("mapDiv", { layers: [this.tileLayer] });
      this.map.centerAndZoom(new T.LngLat(116.318090, 39.920270), 13);

      // 模拟轨迹数据(请根据实际情况获取)
      this.datas = this.getTrackData();

      // 创建车辆轨迹实例
      this.carTrack = new T.CarTrack(this.map, {
        interval: 5,
        speed: 4,
        dynamicLine: true,
        polylinestyle: { color: "#2C64A7", weight: 5, opacity: 0.9 },
        Datas: this.datas.map(obj => new T.LngLat(obj[0], obj[1]))
      });
    },

    // 模拟轨迹数据(实际应用中可以替换为动态获取的数据)
    getTrackData() {
      return [
        [116.318090, 39.920270],
        [116.319090, 39.921270],
        [116.320090, 39.922270],
        [116.321090, 39.923270],
        [116.322090, 39.924270]
      ];
    },

    // 开始轨迹
    startTrack() {
      if (this.carTrack) {
        this.carTrack.start();
      }
    },

    // 暂停轨迹
    pauseTrack() {
      if (this.carTrack) {
        this.carTrack.pause();
      }
    },

    // 结束轨迹
    stopTrack() {
      if (this.carTrack) {
        this.carTrack.stop();
      }
    }
  }
};
</script>

<style scoped>
.container {
  width: 100%;
  height: 100%;
}

#mapDiv {
  width: 100%;
  height: 400px;
}

button {
  margin: 10px;
  padding: 10px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 5px;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值