mapbox加载geojson数据

本案例使用Mapbox GL JavaScript库加载geojson数据。

1. 引入 CDN 链接

<!-- 1.引入CDN链接 -->
<script src="https://api.mapbox.com/mapbox-gl-js/v2.12.0/mapbox-gl.js"></script>
<link
  href="https://api.mapbox.com/mapbox-gl-js/v2.12.0/mapbox-gl.css"
  rel="stylesheet"
/>

2. 创建地图

我们创建了一个Mapbox GL JS地图实例,设置了地图的容器、默认的地图风格、中心点坐标、地图级别以及默认的地图投影模式。

const map = new mapboxgl.Map({
   
  // 在这个对象中,我们填入一些地图相关的参数设置
  container: "map", //地图容器
  style: "mapbox://styles/mapbox/streets-v12", //地图风格,底图数据源
  center: [114.085947, 22.547], //默认注视的坐标点
  zoom: 9, //当前展示的地图级别
  projection: "globe", //地图投影模式
});

3. 加载 geojson 数据

DataV.GeoAtlas 地理小工具系列中,我们获得广东深圳市的geojson数据,并在网页加载地图数据,并绘制一个填充颜色的图层。

3.1. 第一种方法

source写在layer里面。

        map.on("style.load", () => {
   
          // 使用addLayer添加
          fetch("https://geo.datav.aliyun.com/areas_v3/bound/440300_full.json")
            .then((res) => res.json())
            .then((data) => {
   
              // console.log(data);
              //   // 第一种写法:source写在layer里面
              map.addLayer({
   
                id: "shenzhen",
                type: "fill",
                // 地图的数据源
                source: {
   
                  type: 
### 如何在 Mapbox加载和显示矢量数据 #### 创建地图实例 为了在 Mapbox GL JS 中加载和显示矢量数据,首先需要创建一个 `mapboxgl.Map` 对象来初始化地图[^1]。 ```javascript // 初始化地图 var map = new mapboxgl.Map({ container: 'map', // 容器ID style: 'https://api.tianditu.gov.cn/v2/tilesets/vec_c/wmts?service=wmts&request=GetTile&version=1.0.0&layer=vec&style=default&tilematrixset=c&format=tiles&Service=WMTS&tk=您的密钥', center: [116.4, 39.9], // 设置中心点坐标 zoom: 10 // 初始缩放级别 }); ``` 此代码片段展示了如何通过指定容器 ID 和样式 URL 来构建一个新的地图实例。这里使用的是天地图提供的矢量切片服务作为底图风格。 #### 添加矢量源 要向地图添加来自 GeoJSON 或其他来源的矢量数据,则需定义一个矢量源: ```javascript map.addSource('example-source-id', { type: 'vector', url: 'mapbox://examples.8j4rscjm' // 替换成自己的矢量瓦片URL }); ``` 这段 JavaScript 语句说明了怎样利用 `addSource()` 方法给现有地图增加名为 `'example-source-id'` 的新矢量源,并指定了该源的数据位置。 #### 绘制矢量图层 最后一步是在地图上渲染这些矢量特征。这可以通过调用 `addLayer()` 函数完成,它接受两个参数——一个是描述目标图层属性的对象;另一个可选参数用于控制插入顺序: ```javascript map.addLayer({ id: 'example-layer-id', type: 'line', source: 'example-source-id', 'source-layer': 'example-source-layer-name', layout: {}, paint: { 'line-color': '#ff0000', 'line-width': 2 } }); ``` 上述脚本解释了如何设置线型 (`type`) 图层及其外观特性 (颜色、宽度),并将它们绑定到之前创建的矢量源之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值