Удалить удобства NAMES из openstreetmap

Есть ли способ удалить все бизнес с карты OSM? Также как магазины, бары, реставрации, отели и т. Д.

Я хочу использовать карты с меньшим количеством информации. Возможно ли сделать это с оригинального сервера OSM? Может быть, как вариант в URL или что-то еще? Я использую библиотеку Leaflet для своего проекта, может быть, какой-то вариант в нем?

Я хотел, чтобы это было как в API GMAPS:

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

За JS или за дополнительный URL, так или около того, но без какого-либо бизнеса.

2 ответа

Решение

Краткий ответ: Нет.

Карта, которую вы видите на openstreetmap.org, состоит из статических изображений PNG. Вы не можете повлиять на то, как они генерируются.

Но тогда OpenStreetMap на самом деле не предназначен для предоставления карт конечным пользователям. Основной продукт проекта - это необработанные картографические данные, которые вы можете загрузить с planet.osm.org, а не карта, которую вы видите в своем браузере.

Что вы можете сделать, это загрузить исходные данные карты и визуализировать свою собственную карту без учета предприятий. Использование целого дампа планеты довольно сложно, но вы можете загрузить меньшие фрагменты данных OSM (на уровне штата или в некоторых случаях на уровне города) от нескольких разных провайдеров. Смотрите OSM wiki для подробностей.

Когда у вас есть данные, вы можете отобразить их с помощью нескольких различных инструментов. Недавно я написал сообщение в блоге о рендеринге плиток с помощью Maperitive. Также есть Tilemill и, возможно, некоторые другие, о которых я сейчас не думаю.

Мы можем использовать карты без надписей или значков, вы можете найти множество вариантов на этом сайте: https://wiki.openstreetmap.org/wiki/Tile_servers

Карты, используемые в вики: 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

Вы можете использовать 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);   
Другие вопросы по тегам