dann erscheinen zwischen Heilbronn und Stuttgart eine Reihe von kleineren Städten, allerdings nicht BiBi ( das aber mehr Einwohner hat als alle diese Städte).
Maßgebend ist übrigens nicht die Größe, sondern die Länge des Namens:
je länger, desto eher fliegt die Beschriftung raus.
Im German Style hat man in Zoomstufe 9 für place=town einen Abstand von 6 Pixeln zu Nachbarbeschriftungen eingeführt, da scheitert es wohl dran; und in Zoomstufe 10 ist die Schrift im deutschen Stil 9px statt 8px.
Ab Stufe 11 sind beide Stile wieder identisch.
Der offizielle Mapnik OSM Style wertet die Einwohnerzahl noch nicht aus bei der Anzeige von Städten. Es wird dann dann nach der Reihenfolge rerendert wie die Städte in der Datenbank sind. Großsachenseim liegt in der DB wohl vor BB und wird somit auch zuerst gerendert, auf den Zoomstufen wo dann nebendran kein Platz mehr ist fehlt dann BB.
Dort wir BB schon früher gerendert. Warum ? Der Style rendert die Flughäfen noch vor den Städten, was beim deutschen Style nicht der Fall ist. Dadurch wird Großsachenheim nicht gerendert weil das Label zu nahe am Flughafen ist, was dann aber den Nebeneffekt hat, dass dann wieder Platz für BB ist.
Was wann gerendert wird bestimmt die Reihenfolge im Style des Renderers und da momentan halt die Einwohnerzahl noch nicht ausgewertet wird, kommen halt solche kleinen Ungereimtheiten in der Karte zustande.
Könntest Du mir das mal erklären ? Ich kann weder im Mapnik Code oder im Mapnik Style erkennen, dass die Länge des Namens einen Einfluß hat auf die Beschriftung.
Eigentlich hat alleine die Layer Reihenfolge und die DB Select Anweisung im einzelnen Layer eine Auswirkung, welche Labels zuerst gerendert werden.
Wenn ich z.B im Style die select Abfrage so abändere, dass die Städte nach Namen sortiert werden oder z.B. nach der Einwohnerzahl werden sie auch genauso angeordnet, die Länge des Namens hat da doch keinen Einfluss.
Der offizielle Mapnik Style sortiert aber nicht, so dass die Namen eben standardmässig nach der osm_id geordnet sind und in der Reihenfolge auch rerendert werden.
Bei meiner Karte ordne ich die Städte momentan nach dem Namen, also wir BB vor Großsachsenheim angezeigt, weil links von BB kein Platz mehr für das Label von Großsachenheim ist, ein paar Zoomlevel weiter ist dann wieder Platz und beide Städte werden gerendert. In der nächsten Version meiner Karte ordne ich dann mit einer Kombination aus Einwohnerzahl und manueller Ordnung (was bei einer kleinen Region noch machbar ist). Da kann ich dann unabhängig von Einwohnerzahl entscheiden welche Stadt oder welcher Ort für mich wichtiger ist und zuerst gerendert werden soll.
Oder auch nicht, wenn der Platz nicht reicht. Dafür wurden ja die Parameter min_distance und allow_overlap eingeführt. Wobei ersterer im deutschen Stil auftaucht, im normalen nicht.
Natürlich hast du bessere Chancen, wenn du nach Textlänge sortierst. Das macht aber wohl noch keiner.