shoorick: (Рыжий)
[personal profile] shoorick
В прошлых сериях экспериментов с ТайлМиллом доводилось раскрашивать находящиеся в университетском городке здания и добавлять номера домов. Теперь попробуем раскрасить какую-нибудь территорию, да и здания можно перекрасить как-нибудь иначе. Заодно и повод подвернулся: авторы сайта mapstr.ru решили поменять самодельную карту Стерлитамака на OpenStreetMap — там город неплохо отрисован (хотя, конечно, есть ещё, что улучшать), им в целом нравится стиль, которым отрисована карта окрестностей нашего университета, но им хочется, чтоб было как в ДубльГИСе — чтоб стоянки, дворы и частный сектор были залиты разными цветами. Ну и школы с детсадами хочется выделить цветом.


Делаем так:

1. Перед импортом данных OSM в PostGIS в файле imposm-mapping.py указываем, что нам нужно предназначение здания, а относится ли оно к университету, нас не интересует:
buildings = Polygons(
    name = 'buildings',
    fields = (
        ('area', PseudoArea()),
        ('addr:housenumber',String()),
        ('building:levels',Integer()),
        ('height',Integer()),
        ('amenity',String()),
    ),
    mapping = 
        'building': (
            '__any__',
        ),
        'railway': (
            'station',
        ),
        'aeroway': (
            'terminal',
        ),
    
)

там же указываем, что у территорий нас интересует тэг residential — его значение rural можно использовать для обозначения деревенских жилых территорий.
landusages = Polygons(
    name = 'landusages',
    fields = (
        ('area', PseudoArea()),
        ('residential', String()),
        ('z_order', ZOrder([
            'pedestrian',
             ...

2. Импортируем данные.

3. Запускаем TileMill, выбираем нужный проект, идём в свойства слоёв, путём редактирования фрагмента SQL-запроса добавляем поля:

  • amenity — к слою #buildings

  • residential — к слоям #landuse, #landuse_gen0, #landuse_gen1


4. Исправляем стилевые правила:

В базовом файле base.mss указываем необходимость особенной заливки частного сектора
#landuse[zoom>12] 
  [type='allotments']     polygon-fill: @agriculture; 
  // ...
  [type='residential']   
    polygon-fill: @residential;

    [residential='rural']   
      polygon-fill: @rural;
    
  


а также зданий образовательных учреждений: детских садов, школ, ПТУ/техникумов/колледжей и институтов/академий/университетов:
// At the highest zoom levels, render buildings in fancy pseudo-3D.
// Ordering polygons by their Y-position is necessary for this effect
// so we use a separate layer that does this for us.
    [type != 'hedge'] 
     building-fill: @building;
     building-height: 2 + [building:levels] * 2;
     [height>0] 
       building-height: 2 + [height] / 1.5;
     

      // Our buildings
      [amenity = 'kindergarten'] 
        building-fill: @kindergarten_building;
        line-color:darken(@kindergarten_building,10%);
      

      [amenity = 'school'] 
        building-fill: @school_building;
        line-color:darken(@school_building,10%);
      

      [amenity = 'college'] 
        building-fill: @college_building;
        line-color:darken(@college_building,10%);
      
      [amenity = 'university'] 
        building-fill: @university_building;
        line-color:darken(@university_building,10%);
      
    

    [type = 'hedge'] 
      building-fill:@wooded;
      building-height:1.25;
    
  }
}

добавляем цвета в палитру palette.mss
@residential:       #e9e1cd;
@rural:             #ece2b5;
@commercial:        #e7e0f4;
@industrial:        #eeeeee;
@parking:           #e5eaf0;

/* Buildings */
@building:          #bbaa99;
@educational_mix:   #0099ff;

@kindergarten_building: mix(@building, @educational_mix, 90%);
@school_building:       mix(@building, @educational_mix, 85%);
@college_building:      mix(@building, @educational_mix, 80%);
@university_building:   mix(@building, @educational_mix, 75%);


Результат — на http://mapstr.ru/map/

Фрагмент карты Стерлитамака

http://shoorick.ru/2016/05/17/school-painging/

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 21st, 2026 01:29 am
Powered by Dreamwidth Studios