当前位置: 首页 > news >正文

MapLibre GL JS第25课:添加栅格瓦片源

📌 学习目标

  • 掌握添加栅格瓦片源的实现方法
  • 理解相关API的使用
  • 能够独立完成类似功能开发

🎯 核心概念

向地图添加栅格瓦片数据源。

💻 完 整 代 码

代码示例

constmap=newmaplibregl.Map({container:'map',// 容器IDstyle:{'version':8,'sources':{'raster-tiles':{'type':'raster','tiles':['https://tile.openstreetmap.org/{z}/{x}/{y}.png'],'tileSize':256,'minzoom':0,'maxzoom':19,'attribution':"© OpenStreetMap contributors",}},'layers':[{'id':'simple-tiles','type':'raster','source':'raster-tiles',}],'id':'blank'},center:[0,0],// 初始位置zoom:0// 初始缩放级别});

代码示例

<!DOCTYPEhtml><htmllang="en"><head><title>Add a raster tile source</title><metaproperty="og:description"content="向地图添加第三方栅格源。"/><metaproperty="og:created"content="2025-06-25"/><metacharset='utf-8'><metaname="viewport"content="width=device-width, initial-scale=1"><linkrel='stylesheet'href='https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css'/><scriptsrc='https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js'></script><style>body{margin:0;padding:0;}html, body, #map{height:100%;}</style></head><body><divid="map"></div><script>constmap=newmaplibregl.Map({container:'map',// 地图容器idstyle:{'version':8,'sources':{'raster-tiles':{'type':'raster','tiles':['https://tile.openstreetmap.org/{z}/{x}/{y}.png'],'tileSize':256,'minzoom':0,'maxzoom':19,'attribution':"© OpenStreetMap contributors",}},'layers':[{'id':'simple-tiles','type':'raster','source':'raster-tiles',}],'id':'blank'},center:[0,0],// 初始位置zoom:0// 初始缩放级别});</script></body></html>

🔍 代码解析

1. 初始化地图

使用new maplibregl.Map()创建地图实例,配置完整的自定义样式对象。

2. 配置栅格瓦片源

style.sources中定义栅格瓦片源:

  • type: 'raster': 指定为栅格瓦片源
  • tiles: 瓦片URL模板数组,支持{z}/{x}/{y}占位符
  • tileSize: 瓦片大小(通常为256)
  • minzoom/maxzoom: 缩放级别范围
  • attribution: 版权信息

3. 添加栅格图层

style.layers中添加raster类型图层,引用栅格数据源。

⚙️ 参数说明

参数类型必填说明
containerstring地图容器ID
styleobject完整的样式对象
center[number, number]初始中心点,默认[0, 0]
zoomnumber初始缩放级别,默认0

栅格瓦片源配置

属性类型说明
typestring必须为 ‘raster’
tilesarray瓦片URL模板数组
tileSizenumber瓦片像素大小(通常256)
minzoomnumber最小缩放级别
maxzoomnumber最大缩放级别
attributionstring版权归属信息

🎨 效果说明

运行代码后:

  • 地图显示全球视图(中心点 [0, 0],缩放级别0)
  • 使用OpenStreetMap栅格瓦片作为底图
  • 用户可正常交互(拖拽、缩放、旋转)

💡 常 见 问 题

Q1: 矢量瓦片和栅格瓦片有什么区别?
A:矢量瓦片包含矢量数据,可以自定义样式;栅格瓦片是预先渲染的图片,样式固定。

Q2: 如何添加多个栅格图层?
A:定义多个数据源和图层,使用minzoom/maxzoomfilter控制显示。

Q3: 常用的栅格瓦片服务有哪些?
A:OpenStreetMap、MapQuest、Stamen、NASA等提供免费或付费的栅格瓦片服务。

📝 练习任务

  1. 基础练习:更换为其他栅格瓦片服务(如Stamen)
  2. 进阶挑战:添加多个栅格图层,实现图层切换
  3. 拓展思考:如何实现自定义栅格瓦片服务?

🌟 最佳实践

  1. 版权信息: 必须正确设置attribution属性
  2. 缩放级别: 合理设置minzoom/maxzoom,避免加载不必要的瓦片
  3. 瓦片大小: 保持tileSize与服务一致(通常256)
  4. 跨域处理: 确保瓦片服务支持CORS或使用代理

🔗 延伸阅读

  • Map API文档
  • MapLibre GL JS 官方文档
  • [下一课预告]:将继续学习地图图层的基础知识

本文是MapLibre GL JS实践课程系列的一部分,欢迎关注收藏

http://www.zskr.cn/news/1423629.html

相关文章:

  • LLM 推理性能优化:从 vLLM 到投机解码的工程实践
  • Lindy自动化部署失败率高达67%?揭秘头部企业私藏的7步零故障上线 checklist
  • AI健康助手如何重塑医疗:从症状分诊到慢性病管理的实践
  • 四川盛世钢联|成都钢材销售厂家|本地现货供货商|代理商批量拿货价优 - 四川盛世钢联营销中心
  • 设计师的“数字武器库”:CAD库分类解析与选型指南
  • 基于云端OpenClaw的情绪互动机器人系统-Milk-V Duo S + 机器人 端开发(7)
  • 中文语境钓鱼即服务(PhaaS)产业链演化与闭环防御研究
  • 淘宝淘金币自动化脚本终极指南:快速解决8大常见问题
  • 如何轻松管理游戏DLSS版本:DLSS Swapper使用指南
  • Legacy iOS Kit:技术重构如何让经典iOS设备重获新生?
  • AI、区块链与未来媒体:数字时代信任机制的重构与挑战
  • 免费大模型镜像站怎么选?别只看“能用”,稳定、高速、多模型才是关键
  • 企业考勤系统更新换代,通芝深度解析2025年行业趋势与选型建议
  • 终极网盘下载加速指南:九大平台直链解析完整解决方案
  • 如何让经典暗黑破坏神2在现代PC上获得新生:d2dx全面解析
  • 如何实现跨平台GPU加速:ZLUDA创新兼容层技术深度解析
  • 别再瞎试了!GD32F205 CAN波特率配置,用这个公式和在线工具5分钟搞定
  • 专业测评!抗爆墙抗疲劳性能排名前五揭晓
  • 没有户口,孩子上学、租房看病全要变?国务院这场吹风会,把话说透了
  • 大模型时代,人人可编程
  • 【Claude动态规划黄金模板库】:覆盖背包/区间/树形/数位DP等9类高频题型,附可运行Prompt链
  • 病理信息系统 PIS 全流程效能与质量展示
  • 全功能AI协同,易元智创app一站式覆盖全部创作场景
  • 全新原装BMA280是一款由Bosch/博世公司生产的三轴加速度传感器:低功耗与高精度的完美融合,开拓从消费电子到物联网的广阔应用
  • 别再只盯着KL散度了!用Python代码带你玩转F-散度家族(含KL、海林格距离等)
  • 2026最新鹤岗东山黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 金诚回收
  • 2026最新巴彦淖尔临河黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 检测回收中心
  • Excel求和函数SUM从入门到精通:告别手动计算,掌握数据自动化核心
  • 告别Markdown阅读困境:这款浏览器扩展让你轻松享受专业级文档体验
  • 2026最新邯郸曲周黄金回收+白银回收+铂金回收店铺门店权威榜单TOP1~5家推荐地址电话 - 金诚回收