从 openstreetmap 中删除设施名称

Posted

技术标签:

【中文标题】从 openstreetmap 中删除设施名称【英文标题】:Remove amenities NAMES from openstreetmap 【发布时间】:2015-04-18 15:50:09 【问题描述】:

是否存在从 OSM 地图中删除所有业务的方法?也像商店、酒吧、修复、酒店等。

我希望使用信息较少的地图。是否可以从原始 OSM 服务器执行此操作?也许像 URL 中的一个选项或其他什么?我在我的项目中使用 Leaflet 库,也许其中有一些选项?

我希望在 GMAPS API 中使用它:

new google.maps.Map(map_div,
  styles:[
     elementType:'all',
     featureType:'poi',
     stylers:[
        visibility:'off'
        ]
     ]);

通过 JS 或通过额外的 URL,左右,但没有任何业务。

【问题讨论】:

***.com/questions/17531277/removing-places-from-osm 除了渲染你自己的tiles之外,唯一的选择是使用没有标签的磁贴提供者,例如维基媒体提供的tiles.wmflabs.org/osm-no-labels。您可以在左侧查看它们here。 【参考方案1】:

简短的回答:不。

您在 openstreetmap.org 上看到的地图由静态 PNG 图像组成。您无法影响它们的生成方式。

但是,OpenStreetMap 并不是真的打算为最终用户提供地图。该项目的主要产品是您可以从planet.osm.org 下载的原始地图数据,而不是您在浏览器中看到的地图。

您可以做的是下载原始地图数据并在不包括业务的情况下呈现您自己的地图。使用整个星球转储有点让人不知所措,但您可以从几个不同的提供商处下载较小的 OSM 数据(州或某些情况下是城市级别)提取。详情请见the OSM wiki。

获得数据后,您可以使用多种不同的工具对其进行渲染。不久前我写了一篇关于使用 Maperitive 渲染图块的blog post。还有Tilemill,可能还有一些我现在没有想到的。

【讨论】:

【参考方案2】:

我们可以使用不带标签或图标的地图,您可以在此站点中找到许多选项: https://wiki.openstreetmap.org/wiki/Tile_servers

wiki 中使用的地图: https://www.trailnotes.org/FetchMap/TileServeSource.html

这个demo也不错: https://wiwosm.toolforge.org/osm-on-ol/kml-on-ol.php?lat=51.52214&lon=-0.06012&zoom=10&lang=de&layers=B00TT

您可以将 url 用作以下脚本:

**JS Script using Leaflet**
//No labels
var tiles = L.tileLayer('https://c.tiles.wmflabs.org/osm-no-labels/z/x/y.png', 
                maxZoom: 18,
                attribution: '&copy; <a href="https://www.openstreetmap.org  /copyright">OpenStreetMap</a> contributors'
        ),
            latlng = new L.LatLng(34.5, 36.55); 
//No Icons
        var roads = L.tileLayer("http://tile.memomaps.de/tilegen/z/x/y.png", 
           maxZoom: 20, 
        );
        var media = L.tileLayer("https://maps.wikimedia.org/osm-intl/z/x/y.png", 
           maxZoom: 20, 
       );
       var map = new L.Map('map', center: latlng, zoom: 15, layers: [tiles]);

        var basemaps =  
          'tiles':tiles, 
          'roads':roads,
          'media':media,
        ;
        L.control.layers(basemaps).addTo(map);   

【讨论】:

以上是关于从 openstreetmap 中删除设施名称的主要内容,如果未能解决你的问题,请参考以下文章

如何解释 FP_COMP_OPS_EXE.X87 等操作名称

如何在 django (1.8) 迁移中删除索引 varchar_pattern_ops?

从数组中删除多个值

如何从网络逻辑磁盘名称获取物理磁盘索引?

MongoDB Ops Manager 部署指南

从 url 中删除 joomla 视图名称和组件名称