vue3使用天地图完成经纬度以及位置信息回显

一、天地图官网中申请key

登录之后点击控制台=>创建应用=>选择浏览器端就可以看到申请的key

项目中index.html的body中引入

<script src="https://api.tianditu.gov.cn/api?v=4.0&tk=你申请的key"></script>

二、组件(markerMap.vue) 直接复制即可

<template>
  <div id="map"
           class="map radius-md"
           style="width: 100%; height: 100%;"></div>
</template>

<script setup>
import { nextTick, watch } from "vue";

const map = ref(null);
const props = defineProps({
  lng: {
    type: Number,
    default: 117.226367
  },
  lat: {
    type: Number,
    default: 39.089812
  },
  addressName: {
    type: String,
    default: ''
  }
})


watch(() => [props.addressName, props.lng, props.lat], ()=>{
  nextTick(()=>{
    initMap();
  })
})

const initMap = () => {
  const T = window.T;
  //   // 坐标
  map.value = new T.Map("map",{
    enableDrag: true,
    projection: 'EPSG:4326'
  });
  let point = new T.LngLat(props.lng, props.lat);
  map.value.centerAndZoom(point, 17);
   //创建标注对象
   var marker = new T.Marker(point);
            //向地图上添加标注
            map.value.addOverLay(marker);
              //创建信息窗口对象
              var markerInfoWin = new T.InfoWindow(props.addressName);
              marker.openInfoWindow(markerInfoWin);
            marker.addEventListener("click", function () {
                marker.openInfoWindow(markerInfoWin);
            });// 将标注添加到地图中
};

</script>

<style scoped lang="scss">

</style>

三、页面使用

<template>
  <div>
   
      <div style="width: 100%; height: 200px;">
        <markerMap :lat="39.905506"
                 :lng="116.391288"
                 addressName="北京市东城区长安街天安门广场"></markerMap>
                 
      </div>
  </div>
</template>

<script setup>
import markerMap from "@/components/map/tdt/markerMap.vue";

</script>

<style scoped lang="scss">
 
</style>

四、示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值