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