0

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

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

我希望在 GMAPS API 中拥有它:

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

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

4

2 回答 2

1

简短的回答:不。

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

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

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

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

于 2015-02-28T00:03:52.793 回答
1

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

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

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

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

**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);   
于 2021-05-03T14:31:26.637 回答