Какой редактор стилей для карт OSM позволяет изменять цвет в зависимости от типа здания?
Подскажите, как можно сделать карту, где каждый тип здания будет выделен своим цветом? Например, школы — синим, посольства — красным, рестораны — зеленым и т.п. Потом нужно это все экспортировать еще.
Есть MapBox, но я нашел как выделить только парки и школы.
Если вы про Mapbox Studio, то там используется язык стилей CartoCSS, так что цвет вы можете задать какой угодно. Аналогичная ситуация, например, в TileMill. Документация и примеры в сети - есть, вам только нужно понять, как в самих исходных данных обозначено то, что вы хотите определенным образом выделить.
Спасибо, я попробую эти программы. Хотя похоже, задача не имеет простого решения. Как я понял, на картах OSM тип здания — это отдельный нод. То есть «посольство» это просто круглая точка, которая находится на здании, но никакого отношения к нему не имеет.
Может быть вы подскажите как реализовать такую задачу: я хочу покрасить разные типы зданий в разные цвета. Начиная от простого: жилое-нежилое и заканчивая всеми возможными типами, чтобы получилась цветная каша на карте.
Serov_George: Вы поняли не совсем правильно.
Часть обозначений присваивается точкам на здании, часть - и самому зданию и точкам, часть - территории, на которой находится здание (например, так часто бывает в России со школами и детскими садами, но не всегда). Иногда здания имеют несколько функций, скажем - жилой дом (building=residential) и в нем - магазин (тогда он обозначен точкой). Не все участники проекта соблюдают правила, потому полно жилых домов, которые просто building=yes. Или детских садов, у которых не прорисована территория, а потому обозначение amenity=kindergarten стоит не на территории, а на здании, вместе с building=yes (или с некорректным обозначением building=kindergarten).
Так что по поводу "не имеет простого решения" - это вы правильно поняли, не до конца разобрались только в причине этого.
Если бы я пытался привести обозначения к одним только зданиям, я бы выгрузил интересующий участок в базу PostgreSQL с установленным расширением PostGIS для работы с пространственными данными и занялся бы для начала тем, что постарался бы написать пространственные запросы, которые помогали бы проставить полигонам, обозначенным как здание, отсутствующие типы. Например, если building=yes стоит внутри полигона landuse=residential, можно попытаться предположить, что это жилое здание (с некоторой вероятностью). Для уточнения можно использовать дополнительные критерии, такие, как этажность, и наличие внутри полигона здания точек каких-либо amenity=* (например, магазинов). Скажем, одноэтажное или двухэтажное здание, внутри которого есть точки магазинов, находящееся внутри landuse=residential, с большей вероятностью является магазином, чем жилым зданием, а многоэтажное (три и более, либо пять и более - зависит от характера застройки) при тех же условиях - все же, скорее, жилой дом с магазинами внизу.
Так что да, задача куда сложнее, чем может показаться на первый взгляд, и стили - точно не самое сложное, что в ней есть.