0

我正在使用 tileMill 为我的 iPhone 应用程序创建离线地图,长话短说 - 我已经从这里下载了乌克兰地区的 OSM 数据。我检查了在线地图(来自链接)显示的建筑物编号,如图所示:

在此处输入图像描述

但是在将我下载的数据导入瓷砖厂后,没有建筑编号:

在此处输入图像描述

知道为什么会这样吗?谢谢!

编辑:我想出了如何设置门牌号码标签,但是当我将数据导入到 tilemill(使用本教程)时,我找不到包含门牌号码的图层。

设置门牌号标签的代码:

#housenumbers {
  [zoom >= 17] {
    text-name: "[addr:housenumber]";
    text-placement: interior;
    text-min-distance: 1;
    text-wrap-width: 0;
    text-face-name: @book-fonts;
    text-fill: #444;
    text-size: 9;
  }
}

#housenames {
  [zoom >= 17] {
    text-name: "[addr:housename]";
    text-placement: interior;
    text-wrap-width: 20;
    text-face-name: @book-fonts;
    text-size: 8;
    text-fill: #444;
    [zoom >= 18] {
      text-size: 9;
    }
  }
}
4

3 回答 3

4

资料来源:邮政地理信息系统

表或子查询

( SELECT way, "addr:housenumber" 
  FROM planet_osm_polygon
  WHERE  "addr:housenumber"  IS NOT NULL
) AS data

造型

标签.mss

#housenumbers[zoom >= 17] {
  ::label {
    text-name: '[addr:housenumber]';
    text-face-name:@sans;
    text-size: 9;   
    text-placement:interior;
    text-min-distance: 1;
    text-wrap-width: 0;
    text-fill: #444;
  }    
}

需要“::label”来防止地图上出现红点。

ps 对于俄罗斯人,我在我的博客中写过。

于 2014-01-26T04:16:37.220 回答
3

您需要了解,OSM.org 使用一个名为Mapnik的纯渲染引擎。Tilemill通过简化样式表来封装 Mapnik。

正如@scai 所说,您需要创建一个样式表来呈现门牌号的标签。我不熟悉 tilemill 来告诉你需要做什么,但通常这包括

  • 添加一个标签符号器,用于查找 addr:housenumber=* 标签并以适当的字体和大小打印该值
  • (创建假节点来处理该标签在建筑物轮廓内的放置等)
于 2013-12-19T18:06:59.310 回答
0

对我来说,它使用planet_osm_point 而不是planet_osm_polygon

(选择方式,“addr:housenumber” FROM planet_osm_polygon WHERE“addr:housenumber”不为空)作为数据

于 2015-05-13T08:39:52.647 回答