使新的Tilemill地图匹配默认的Mapbox标签样式

时间:2014-01-18 14:45:25

标签: map mapbox tilemill

我想在tilemill中制作一个与this example中标签显示方式相匹配的地图,直到在每个缩放级别获得标签的国家/地区,哪个国家/地区获得缩写。与完整标题相对应,使用线条将标签连接到较小的国家/地区等。

这似乎是默认的Mapbox标签样式(我注意到this Mozilla map的行为完全相同),因为那里没有自定义。但是,在创建新的Tilemill地图时,根本没有标签。如何以与Mapbox示例完全相同的方式添加标签(即Mapbox默认标签样式),我需要做什么?

2 个答案:

答案 0 :(得分:1)

TileMill2提供来自OpenStreetMap的基本地图数据,包括标签。 TM2也用于create Mozilla's map。您可以创建纯粹是标签图层的地图,也可以更改字体和样式。如果您使用的是OS X,则建议您build TM2 from the binary

注意: TM2可用作回购,目前是公开测试版。 TM2上传到mapbox.com将在未来几个月内公开发布。

答案 1 :(得分:1)

这是我正在使用的风格,应该让你开始。对我来说,我不希望覆盖在地图框图块顶部的图层与默认标签重叠。

你可以看到它的外观here

然而,标签在很多情况下都是一两个像素。出于沮丧,我放弃了100%完美。请记住,默认的地图框样式似乎在不断发展。

有一点技巧就是让晕圈比你需要的大一点。这可以隐藏/混合您正在覆盖的标签。

字体:

@sans_lt:           "Open Sans Regular","DejaVu Sans Book","unifont Medium";
@sans:              "Open Sans Semibold","DejaVu Sans Book","unifont Medium";
@sans_bold:         "Open Sans Bold","DejaVu Sans Bold","unifont Medium";
@sans_italic:       "Open Sans Semibold Italic","DejaVu Sans Italic","unifont Medium";
@sans_bold_italic:  "Open Sans Bold Italic","DejaVu Sans Bold Italic","unifont Medium";

@place_halo:        fadeout(@bluish_white,5%);

@town_text:         #444;
@town_halo:         @place_halo;

OSM使用OSM Bright imposm脚本

放置样式,osm数据
#place::small[type='village'][zoom<13][zoom>9],
#place::small[type='suburb'][zoom<13][zoom>9],
#place::small[type='hamlet'][zoom<13][zoom>9]{
  text-name:'[name]';
  text-face-name:@sans;
  text-placement:point;
  text-fill:@town_text;
  text-size:9;
  text-halo-fill:fadeout(@town_halo, 25%);
  text-halo-radius:3;
  text-wrap-width: 50;
  text-allow-overlap: true;
  [zoom>=10] {
    text-size: 11;
  }
  [zoom>=11]{ text-size:11; }
  [zoom>=12]{
    text-size:12;
    text-line-spacing: 1;
  }
}

希望这有所帮助,我认为这可能是我们可以获得的最好的,直到矢量瓷砖着陆。如果你弄清楚他们使用的确切风格,那么听起来会很棒。