如何创建仅显示城市名的OpenStreetMap Leaflet地图
实现仅显示城市名称的OpenStreetMap Leaflet地图
要替换现有MapTiler图层,实现只展示城市名称、隐藏医院/酒店等地标标签的需求,你可以使用基于OpenStreetMap数据的简约样式瓦片服务——这类服务默认仅渲染行政区划标签(城市、国家)和基础地图元素,过滤掉了POI类标注。
修改后的完整代码
// 创建以指定位置为中心、指定缩放级别的地图 const map = L.map("leaflet-map-popup").setView([20.5937, 78.9629], 5); // 替换为基于OSM的简约瓦片图层 L.tileLayer( "https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png", { maxZoom: 18, attribution: '© OpenStreetMap contributors', } ).addTo(map);
核心说明
- 瓦片服务特性:上述
alidade_smooth样式完全基于OpenStreetMap数据,仅保留道路、水系和城市/国家级别的行政区划标签,不会显示医院、酒店等POI地标及对应标签,符合你的需求。 - 版权规范:所有基于OpenStreetMap的瓦片服务必须保留
© OpenStreetMap contributors的版权声明,这是OSM数据的使用要求。 - 进阶自定义:如果需要更精细化的样式(比如仅显示城市名称+空白底图),可以用Maptiler或类似工具基于OSM数据自定义瓦片样式,生成专属瓦片URL后替换即可。
内容的提问来源于stack exchange,提问作者Aditya28
相关产品推荐
相关产品推荐

