使用天地图实现只展示某个市的功能

可参考 天地图部分功能hooks封装useTdtMap.js处理geoJson格式数据并能回显至天地图上

下面实现效果类似于百度地图-展示部分区域

功能图

在这里插入图片描述

部分代码
const initLoad = () => {
  mapInit().then((res) => {
    map.value = res;
    
    var layers = map.value.getLayers();
    layers.forEach(function (layer) {
      layer.setOpacity(0);
    });
	
	// 给每个区添加label
    for(let i = 0, j = JNPolygon.features.length; i < j; i ++)  {
      let curPoint = JNPolygon.features[i].properties;
      var latlng = new T.LngLat(curPoint.centroid[0], curPoint.centroid[1]);
      var label = new T.Label({
          text: curPoint.name,
          position: latlng,
          offset: new T.Point(-20, 0)
      });

      map.value.addOverLay(label);
    }
    addMapData();
  });
};


const addMapData = () => {
  const list = props.data || [];
  addJNGeoJSON(JNPolygon); // 画每个区的面(我这块以济南数据为例)
  list.forEach((item) => {
    addMarkers(item); // 根据项目信息添加标注点
  });
};

function addJNGeoJSON(geojson) {
  customGetGeoJsonData(geojson).then((res) => {
    let polygonOptions = {
      color: "rgb(73 221 251)",
      weight: 6,
      opacity: 0.8,
      fillColor: "#000",
    };
    geoJsonMapFormat.polygon?.forEach((polygonCoordinate) => {
      addMapPolygon(polygonCoordinate, polygonOptions);
    });
    // 调整自适应地图视角
    geoJsonToMapAdaptiveAlgorithm().then((res) => {
      let { coordinate, zoom } = res;
      setMapScale(coordinate, zoom);
    });
  });
}
<style scoped>
#mapDiv {
  position: absolute; 
  width: 100%; 
  height: 100%; 
  z-index: 100; 
  background: url('@/assets/images/criteria-bg.png'); // 可将蓝色背景改成图片
}

// 修改label样式
:deep(.tdt-label) {
  background-color: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  color: #fff;
}
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值