当前位置:   article > 正文

antV L7 无底图模式 和 地图3D样式的使用

antV L7 无底图模式 和 地图3D样式的使用

下方为设计图样式,主要实现地图3D且去除底图

 这次使用的是由蚂蚁金服 AntV 数据可视化团队推出antV L7,练习的时候使用四川的地图json数据,通过DataV.GeoAtlas地理小工具系列就可以下载各个地方的地图数据(只能精确到县),下面开始正文

一、创建地图

根据官网给出的使用教程,代码和做出的效果图如下

  1. import { ref, onMounted } from 'vue'
  2. import sichuan from '@/assets/json/sichuan.json'
  3. import mapBgImg from '@/assets/screen/mapBg1.png'
  4. import { Scene, PolygonLayer, LineLayer } from '@antv/l7';
  5. import { Map ,Mapbox,GaodeMap} from '@antv/l7-maps';
  6. function initMap() {
  7. const scene = new Scene({
  8. id: 'map',
  9. logoVisible: false,
  10. map: new GaodeMap({
  11. center: [106.689, 30.159],
  12. zoom: 6,
  13. maxZoom: 8,
  14. minZoom: 4,
  15. pitch: 45, // 地图倾斜度
  16. style: 'blank',
  17. }),
  18. });
  19. //添加四川地图
  20. const sichuanMap = new PolygonLayer({ autoFit: true })
  21. .source(sichuan) //使用的数据为下载到本地的json数据
  22. .shape('extrude') //用于绘制几何体
  23. .size(30000)
  24. .active({
  25. color: 'rgba(0, 0, 0, .3)'
  26. })
  27. .style({
  28. mapTexture: mapBgImg, //如果想使用纹理贴图,shap必须为extrude
  29. heightfixed: true, //抬升高度是否随 zoom 变化
  30. raisingHeight: 10000, //抬升高度
  31. sourceColor: '#333', //抬高高度的颜色
  32. targetColor: '#fff',
  33. opacity: 0.8
  34. })
  35. //添加各市的边界线
  36. const sichuanLine = new LineLayer({zIndex:2})
  37. .source(sichuan)
  38. .color('#fff')
  39. .size(0.8)
  40. .style({
  41. raisingHeight: 50000
  42. })
  43. scene.addLayer(sichuanLine)
  44. scene.addLayer(sichuanMap);
  45. }
  46. onMounted(() => {
  47. initMap()
  48. })

 发现一个问题,虽然使用了无地图模式: blank,但是在图层外面显示了国境线,在项目中有些只需要显示当前绘制的东西

二、消除当前地图以外的东西

有细心的小伙伴在阅读官网介绍的时候一定发现了,地图类型的实例,可以为Map、GaodeMap和Mapbox三种类型,在项目中大部分人都会直接使用GaodeMap,当我们把类型改为Map或者Mapbox的时候,使用blank模式,就可以只展示当前地图

  1. const scene = new Scene({
  2. id: 'map',
  3. logoVisible: false,
  4. map: new Mapbox({
  5. center: [106.689, 30.159],
  6. zoom: 6,
  7. maxZoom: 8,
  8. minZoom: 4,
  9. pitch: 45, // 地图倾斜度
  10. style: 'blank',
  11. interact: false, // 高德地图是否允许地图可拖动,默认为true
  12. }),
  13. });

 Tip:小提示

如果要使用抬高效果,比如在使用GaodeMap时,抬升高度为10000,使用Map或Mapbox时,大概要是GaodeMap的10倍,大概为100000,在看起来的效果才会差不多.(再加个背景色)

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号