百度地图BMapGL通过geojson数据画镇级别区域图,并掩膜其他区域不展示

文章介绍了如何使用axios从GeoJSON文件中获取数据,然后在BMapGL地图上标记POI兴趣点并创建地图掩模,展示了如何在JavaScript代码中实现地理信息可视化。
摘要由CSDN通过智能技术生成
geojson镇级别的数据去这里下POI数据|POI兴趣点|POI数据库|POI兴趣点下载|POI数据下载|最新POI数据库|最全POI数据库|谷歌POI数据库|2023年POI数据库
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>(原始的html页面引入axios,vue的自己装一下再引)
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=密码"></script>(没有去申请)
<script src="https://mapv.baidu.com/build/mapv.min.js"></script>
<script src="https://code.bdstatic.com/npm/mapvgl@1.0.0-beta.127/dist/mapvgl.min.js"></script>
<script type="text/javascript">

var bmapgl = new BMapGL.Map('map_container');
bmapgl.enableScrollWheelZoom(true);// 开启鼠标滚轮缩放
var point = new BMapGL.Point(109.124578,38.3241);
bmapgl.centerAndZoom(point, 13);
bmapgl.setMapStyleV2({styleJson:eval("baiduMapStyle")});//地图颜色
axios.get('../../css/json/18924.geojson').then(async(res) => {
   const areas = []
   for (let i = 0; i < res.data.features.length; i++) {
      let villages = []
      const villagesPoints = res.data.features[i].geometry.coordinates[0][0]
      for (let j = 0; j < villagesPoints.length; j++) {
         areas.push(villagesPoints[j].toString())
      }
      villages = villages.join(';')
      areas.push(villages)
   }
   console.log("areas",areas)
   const path  = []
   for (let z= 0;z < areas.length-1; z++){
      let villages = []
      villages = areas[z].split(",");
      path.push(new BMapGL.Point(villages[0],villages[1]));
   }
   console.log("path",path)
   var mapmask = new BMapGL.MapMask(path, {
      isBuildingMask: true,
      isPoiMask: true,
      isMapMask: true,
      showRegion: 'inside',
      topFillColor: '#5679ea',
      topFillOpacity: 0.5,
      sideFillColor: '#5679ea',
      sideFillOpacity: 0.9
   });
   bmapgl.addOverlay(mapmask);
   var border = new BMapGL.Polyline(path, {
      strokeColor: '#4ca7a2',
      strokeWeight: 3,
      strokeOpacity: 1
   });
   bmapgl.addOverlay(border);
})

</script>

帮人帮到底,需要用到的东西都给你们加上

以下是一个简单的示例代码,用于加载 geojson 文件并将其显示在 BMapGL 上: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>BMapGL加载geojson实现覆盖物</title> <style type="text/css"> #map{ width: 100%; height: 600px; } </style> </head> <body> <div id="map"></div> <script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密钥"></script> <script src="https://api.map.baidu.com/library/GeoJSON/1.2/src/GeoJSON.min.js"></script> <script> // 创建地实例 var map = new BMapGL.Map("map"); // 初始化地,设置中心点坐标和地级别 map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 11); // 加载 geojson 文件 var geojson = { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "百度大厦", "type": "building" }, "geometry": { "type": "Point", "coordinates": [116.307852, 40.056958] } }, { "type": "Feature", "properties": { "name": "天安门", "type": "landmark" }, "geometry": { "type": "Point", "coordinates": [116.397477, 39.908692] } } ] }; // 将 geojson 数据转换为 BMapGL 覆盖物 var geojsonLayer = new BMapGL.GeoJSON(geojson, { style: function(feature) { return { fillColor: feature.properties.type === 'building' ? 'red' : 'blue', strokeColor: 'black', strokeWeight: 1, fillOpacity: 0.5 } } }); // 将 BMapGL 覆盖物添加到地map.addOverlay(geojsonLayer); </script> </body> </html> ``` 以上代码将加载一个包含两个点的 geojson 文件,并使用不同的颜色和样式来显示它们。你可以将这个示例代码复制到本地文件中,并在浏览器中打开它以查看效果。 以下是示例 geojson 数据: ```json { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "百度大厦", "type": "building" }, "geometry": { "type": "Point", "coordinates": [116.307852, 40.056958] } }, { "type": "Feature", "properties": { "name": "天安门", "type": "landmark" }, "geometry": { "type": "Point", "coordinates": [116.397477, 39.908692] } } ] } ``` 以上数据包含两个点,分别代表百度大厦和天安门。你可以将这个数据保存为一个 `.json` 文件,并在示例代码中加载它。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值