Ну да, здесь ссылка на settings.xml.inc, где определяется путь к world_boundaries. А поскольку шейпы — это несколько файлов, здесь название написано без расширения.
Можно попробовать в settings.xml.inc написать полный путь, а не относительный.
Ну да, здесь ссылка на settings.xml.inc, где определяется путь к world_boundaries. А поскольку шейпы — это несколько файлов, здесь название написано без расширения.
Можно попробовать в settings.xml.inc написать полный путь, а не относительный.
Спасибо!
Не нравится мне, что в КМ нельзя редактировать natural=heath. Написал им тикет.
Кстати, похоже, в Мапнике изменили стиль: теперь райцентры рисуются до 9 зума, а раньше - до 12.
Нет, это просто кто-то переделал райцентры в town, как рекомендует вики А они издавна на 9-м зуме рисовались.
Понятно.
Помните, тут обсуждали, чтобы города и деревни рисовать не точками, а полигонами, чтобы не дублировать точкой то, что сделано полигоном?
Сейчас мапник криво рисует (на более низких зумах) то, что сделано полигонами. Из-за этого под него многое просто рисуют точками.
Вот попытка исправить это. Переписаны запросы из layer-placenames.xml.inc, последние 2 блока Layer:
<Layer name="placenames-medium" status="on" srs="&osm2pgsql_projection;">
<StyleName>city</StyleName>
<StyleName>town</StyleName>
<Datasource>
<Parameter name="table">
(select way,place,name
from &prefix;_point
where place in ('city','metropolis','town','large_town','small_town')
and (capital is null or capital<>'yes')
union
select way,place,name
from &prefix;_polygon
where place in ('city','metropolis','town','large_town','small_town')
) as placenames</Parameter>
&datasource-settings;
</Datasource>
</Layer>
<Layer name="placenames-small" status="on" srs="&osm2pgsql_projection;">
<StyleName>suburb</StyleName>
<StyleName>village</StyleName>
<StyleName>hamlet</StyleName>
<Datasource>
<Parameter name="table">
(
select way,place,name
from &prefix;_point
where place in ('suburb','village','large_village','hamlet','locality','isolated_dwelling')
union
select way,place,name
from &prefix;_polygon
where place in ('suburb','village','large_village','hamlet','locality','isolated_dwelling')
) as placenames</Parameter>
&datasource-settings;
</Datasource>
</Layer>
Просто к местам-точкам были добавлены места-полигоны.
В первом блоке Layer второй запрос не содержит условия на capital, т.к. в таблице полигонов такой колонки нет.
Однако есть проблема: не все деревни рисуются.
Вот деревня, которая рисуется из полигона (её точку я удалил из базы вручную):
<way id="58704171" version="3" timestamp="2010-05-31T04:10:49Z" uid="243916" user="titanlis" changeset="4859141">
(точки)
<tag k="addr:country" v="RU"/>
<tag k="addr:district" v="Мошковский район"/>
<tag k="addr:postcode" v="633145"/>
<tag k="addr:region" v="Новосибирская область"/>
<tag k="cladr:code" v="5401900003500"/>
<tag k="cladr:name" v="Старый Порос"/>
<tag k="cladr:suffix" v="Село"/>
<tag k="landuse" v="residential"/>
<tag k="name" v="Старый Порос"/>
<tag k="place" v="village"/>
</way>
А вот эта деревня даже не записана из .osm в БД (select * from planet_osm_polygon where osm_id=89434804; => 0 строк).
<way id="89434804" version="3" timestamp="2010-12-13T18:19:21Z" uid="237049" user="siberiano" changeset="6650537">
(точки)
<tag k="name" v="Журавка"/>
<tag k="name:en" v="Zhuravka"/>
<tag k="place" v="village"/>
<tag k="place_name" v="Журавка"/>
</way>
Я хочу довести это до рабочего патча и отправить разработчикам, либо попросить права коммитить в осм-мапник. У кого какие предложения по поводу деревни?
Мои глаза!
в правильном направлении движешься! Я тоже как-то думал сделать стиль для гибридного слоя, но быстро поутих энтузиазм, когда не смог почему-то увязать свои тайлы с google satellite.
А можно ли взять (загрузить себе) стили карт, созданные в редакторе стилей cloudmade, чтобы использовать при самостоятельном рендеринге? Как использовать эти стили на maps.cloudmade.com - здесь все ясно. А вот как забрать у них свое творчество - не ясно.
А не могли бы поконкретнее - как это сделать? Может есть документация какая внятная? То, что я нашёл на вики - не совсем внятно и мало.
ну для начала - берём и правим стандартный стиль импорта osm2pgsql - копируем /usr/share/osm2pgsql/default.style к себе в папочку и правим.
Я например к нему добавил такое:
node,way name:ru text linear
node,way design text linear
node,way design:ref text linear
node,way voltage text linear
Эти строки добавят в импорт теги name:ru, design, design:ref и voltage.
После этого запускаем импорт с новым стилем: osm2pgsql -S rus_names.style planet.osm.bz2
Всё, файлы у нас в базе.
Теперь правим/создаём стиль мапника с нужными нам параметрами.
Например, вот что я сделал с тегом voltage указанным вверху:
<Style name="power">
<Rule>
<Filter>[voltage] = '380' or [voltage] = '400' or [voltage] = '220'</Filter>
<MinScaleDenominator>10000</MinScaleDenominator>
<LineSymbolizer>
<CssParameter name="stroke">green</CssParameter>
<CssParameter name="stroke-width">1.2</CssParameter>
<CssParameter name="stroke-opacity">0.6</CssParameter>
</LineSymbolizer>
</Rule>
<Rule>
<Filter>[voltage] = '35000' or [voltage] = '33000'</Filter>
<MinScaleDenominator>10000</MinScaleDenominator>
<LineSymbolizer>
<CssParameter name="stroke">orange</CssParameter>
<CssParameter name="stroke-width">2.5</CssParameter>
<CssParameter name="stroke-opacity">0.6</CssParameter>
</LineSymbolizer>
</Rule>
<Rule>
<Filter>[voltage] = '110000'</Filter>
<MinScaleDenominator>10000</MinScaleDenominator>
<LineSymbolizer>
<CssParameter name="stroke">red</CssParameter>
<CssParameter name="stroke-width">2.5</CssParameter>
<CssParameter name="stroke-opacity">0.6</CssParameter>
</LineSymbolizer>
</Rule>
<Rule>
<Filter>[voltage] = '330000'</Filter>
<MinScaleDenominator>10000</MinScaleDenominator>
<LineSymbolizer>
<CssParameter name="stroke">#F0A</CssParameter>
<CssParameter name="stroke-width">3</CssParameter>
<CssParameter name="stroke-opacity">0.7</CssParameter>
</LineSymbolizer>
</Rule>
<Rule>
<ElseFilter/>
<MinScaleDenominator>10000</MinScaleDenominator>
<LineSymbolizer>
<CssParameter name="stroke">#AAA</CssParameter>
<CssParameter name="stroke-width">2.5</CssParameter>
<CssParameter name="stroke-opacity">0.6</CssParameter>
<CssParameter name="stroke-dasharray">10,1</CssParameter>
</LineSymbolizer>
</Rule>
</Style>
тут мы описываем, по каким критериям отбирать нужные нам линии и как именно их рисовать
2) Сам слой:
<Layer name="power" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
<StyleName>power</StyleName>
<Datasource>
<Parameter name="type">postgis</Parameter>
<Parameter name="user">jekader</Parameter>
<Parameter name="dbname">gis</Parameter>
<Parameter name="estimate_extent">false</Parameter>
<Parameter name="table">(select way,voltage from planet_osm_line where "power"='line' ) as power</Parameter>
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>
</Datasource>
</Layer>
тут Мы указываем откуда брать геометрии (включая SELECT из базы)
Эти правки делаются к примеру в файле osm.xml - больше подробностей тут:
http://wiki.openstreetmap.org/wiki/RU:Mapnik