从 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: '© <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 中删除设施名称的主要内容,如果未能解决你的问题,请参考以下文章
获取 Tilemill 以显示带有英文标题的 openstreetmap 地图
如何从 OpenStreetMap 数据中找到街道交叉口的列表?
如何从openstreetmap.org下载特定区域中的所有道路和节点