我想在 tilemill 中制作一个与此示例中显示标签的方式相匹配的地图,直到在每个缩放级别获得标签的国家/地区,哪个国家/地区获得缩写。与完整标题相比,使用线条将标签连接到较小的国家等。
这似乎是默认的 Mapbox 标签样式(我注意到这个 Mozilla 地图的行为方式完全相同),因为那里没有自定义。但是,在创建新的 Tilemill 地图时,根本没有标签。我需要做什么才能以与 Mapbox 示例完全相同的方式添加标签(即 Mapbox 默认标签样式)?
我想在 tilemill 中制作一个与此示例中显示标签的方式相匹配的地图,直到在每个缩放级别获得标签的国家/地区,哪个国家/地区获得缩写。与完整标题相比,使用线条将标签连接到较小的国家等。
这似乎是默认的 Mapbox 标签样式(我注意到这个 Mozilla 地图的行为方式完全相同),因为那里没有自定义。但是,在创建新的 Tilemill 地图时,根本没有标签。我需要做什么才能以与 Mapbox 示例完全相同的方式添加标签(即 Mapbox 默认标签样式)?
TileMill2提供来自 OpenStreetMap 的基本地图数据,包括标签。TM2 也被用于创建 Mozilla 的地图。您可以创建一个纯粹是标签图层的地图,也可以更改字体和样式。如果您使用的是 OS X,建议您从二进制文件构建 TM2。
注意: TM2 以 repo 形式提供,目前是公开测试版。TM2 上传到 mapbox.com 的内容将在未来几个月内公开发布。
这是我正在使用的样式,应该可以帮助您入门。对我来说,我不希望覆盖在 mapbox 瓦片顶部的图层与默认标签重叠。
你可以在这里看到它的样子
然而,标签与很多情况相差一两个像素。出于沮丧,我放弃了让它 100% 完美。还要记住,默认的 mapbox 样式似乎在不断发展。
一个小技巧是让光环比你需要的大一点。这可以隐藏/与您正在覆盖的标签混合。
字体:
@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;
}
}
希望这会有所帮助,我认为这可能是在矢量瓷砖着陆之前我们能得到的最好的结果。如果您弄清楚他们使用的确切风格,那将是很高兴听到的。