Kłamię, nazwy budynków także wywędrowały na nowe pozycje, wskutek czego wyświetlana jest teraz zarówno cyfra oznaczająca numer domu jak i nazwa budynku.
Chodzi o to, żeby nie było sytuacji, kiedy ikonka jest czymś zasłonięta i widać tylko podpis do niej. Trzeba wdrożyć nową funkcjonalność Mapnika do CartoCSS, żeby można było to z kolei używać w OSM Carto
Niedawno porzuciliśmy kod Mapnika, który wybiera miejsce umieszczenia napisu na obszarze, i w zamian zyskaliśmy na prędkości kompilacji oraz na zrzuceniu zbędnego kodu, ale niestety algorytm centrowania napisów z PostGISa jest kiepski.
Jest możliwość, żeby wobec tego zaimplementować nowy algorytm Mapnika w bibliotece OSGEO, której z kolei używa wiele innych projektów. Talaj, który ten nowy algorytm wymyślił i wdrażał w Mapniku (bo poprzedni algorytm Mapnika był podobnie kiepski jak ten obecny w OSGEO/PostGIS), nie bardzo ma czas, więc to może być na świętego Nigdy.
Zasadniczo wolałbym właśnie tę wersję, bo jest bardziej dopieszczona, ale różnice nie są wielkie. Kulisy historii są takie, że przyszedłem do Talaja ze zgłoszeniem, że stary algorytm robi czasem ewidentne błędy w OSM Carto:
a potem przez kolejne miesiące po wdrożeniu nowej wersji Mapnika na serwery OSMF oczywiście wielokrotnie patrzyłem na efekty i były w najgorszym razie przyzwoite, a czasem wręcz bardzo dobre, ale nigdy wątpliwe - jeden błąd został poprawiony po drodze:
Od tej pory jestem zadowolony z mapnikowego rozwiązania. No i historia trochę zatoczyła koło - znowu trzeba naprawiać to samo, tylko w innym miejscu… Na szczęście efekt będzie wtedy dostępny od razu w standardowej bibliotece używanej przez wiele projektów, a w dodatku kod już jest napisany i przetestowany, więc po prostu bardziej warto. Chodzi już tylko o osobę, która się tym zajmie.
Gdy na obrysie budynku jest też tag z serii office=* z name=* (może dotyczy to też amenity=* i podobnych POI-ów), nazwa ta na poziomie 17 wyświetla się większa (jak dla nazwy budynku) niż na poziomach 18-19 (jak dla POI-a, razem z symbolem).
Przy okazji mapowania jednego z poznańskich cmentarzy zauważyłem dziwną hierarchię - kosze na śmieci (amenity=waste_basket) mają wyższy priorytet wyświetlania niż większe kontenery na śmieci (amenity=waste_disposal)
Szkoda też, że mimo gotowych ikonek nie udało się dokończyć tematu renderowania kranów i pomp z wodą, więc mimo, że będą w wielu miejscach zmapowane, to będzie prawdopodobnie kolejny 1 listopada gdzie ludzie nie będą widzieć tych danych na mapie
Mapując ostatnio pomnik memorial=statue oraz kamień pamiątkowy memorial=stone (historic=memorial) blisko siebie, to name z kamienia zakrywał name z pomnika, który był ważniejszy w tym miejscu. Stworzyłem nowy node dla pomnika, wówczas jego id w bazie OSM miało wyższy numer niż node kamienia i teraz na mapie wyświetla się wszystko jak powinno.
Może kolejność renderingu oprócz priorytetu obiektów bierze pod uwagę ID obiektu?
osm-carto nie uwzględnia tu ID obiektu. Co nie oznacza, że nie może istnieć zależność pośrednia, wynikająca ze sposobu działania bazy danych i mapnika. Wykorzystywanie tego byłoby jednak formą tagowania pod render.
Jeśli uważacie, że waste_disposal powinien się zawsze renderować przed waste_basket, to wystarczy zrobić zgłoszenie. Kod do przydzielania priorytetu już jest, tyle że oba te obiekty dostają w nim tę samę wartość.
Edit:
To powyższe dotyczy tylko przypadku tutaj przedstawionego, czyli gdy oba obiekty są jako węzły. Nie jest to typowa sytuacja, bo najcześćiej śmietnik (wate_disposal) rysujemy jako obszar.
Śmietniki jako obszar są obsługiwane obsługuje inny kod i mają inny priorytet.
Podejrzewam, że to zmiana algorytmu wyznaczania środka obszarów z Mapnika na to, co oferuje PostGIS. Zaleta jest taka, że to pozwoli na migrację do mapy wektorowej, ale dobrze by było, gdyby ktoś przeportował lepszy algorytm Mapnika do PostGIS-a poprzez bibliotekę OSGEO, z której on korzysta, i która podejmuje kiepskie decyzje w niektórych nietypowych kształtach. Pisałem o tym niedawno i nadal szukamy ochotników: