【问题标题】:Remove amenities NAMES from openstreetmap从 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,左右,但没有任何业务。

【问题讨论】:

标签: google-maps openstreetmap point-of-interest


【解决方案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);   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2013-01-15
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多