On 20.02.2011 18:33, M∡rtin Koppenhoefer wrote:
Apropos (Du scheinst Dich auszukennen): wie wird eigentlich die
z_order bei Mapnik innerhalb desselben Layers (gemeint ist mit
demselben layer-tag-wert) bestimmt/vorgegeben? Macht das osm2pgsql?

ja, das berechnet osm2pgsql. Hier der code:
http://trac.openstreetmap.org/browser/applications/utils/export/osm2pgsql/output-pgsql.c?rev=25198
303     
304     static int add_z_order(struct keyval *tags, int *roads)
305     {
306         const char *layer   = getItem(tags, "layer");
307         const char *highway = getItem(tags, "highway");
308         const char *bridge  = getItem(tags, "bridge");
309         const char *tunnel  = getItem(tags, "tunnel");
310         const char *railway = getItem(tags, "railway");
311         const char *boundary= getItem(tags, "boundary");
312     
313         int z_order = 0;
314         int l;
315         unsigned int i;
316         char z[13];
317     
318         l = layer ? strtol(layer, NULL, 10) : 0;
319         z_order = 10 * l;
320         *roads = 0;
321     
322         if (highway) {
323             for (i=0; i<nLayers; i++) {
324                 if (!strcmp(layers[i].highway, highway)) {
325                     z_order += layers[i].offset;
326                     *roads   = layers[i].roads;
327                     break;
328                 }
329             }
330         }
331     
332         if (railway && strlen(railway)) {
333             z_order += 5;
334             *roads = 1;
335         }
336 // Administrative boundaries are rendered at low zooms so we prefer to use the roads table
337         if (boundary && !strcmp(boundary, "administrative"))
338             *roads = 1;
339     
340 if (bridge && (!strcmp(bridge, "true") || !strcmp(bridge, "yes") || !strcmp(bridge, "1")))
341             z_order += 10;
342     
343 if (tunnel && (!strcmp(tunnel, "true") || !strcmp(tunnel, "yes") || !strcmp(tunnel, "1")))
344             z_order -= 10;
345     
346         snprintf(z, sizeof(z), "%d", z_order);
347         addItem(tags, "z_order", z, 0);
348     
349         return 0;
350     }



_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an