Клуб Народной карты

Отрисовка улиц при различных масштабах

podmotal
18 июня 2010, 13:24

На «Народных картах» есть проблемы с отображением улиц вообще, и подписей к ним в частности.

Вот например, картинка, способная ввести в ступор кого угодно: http://img638.imageshack.us/img638/4746/38006512.png — в центре кадра отрисована частая сетка улиц, но практически ни для одной не отрисованы подписи. Что самое ужасное — подписи не отображаются даже для улиц категории «основная», видимых в кадре (обозначены вопросиками). Зато с какого-то бодуна отображаются подписи у пары-тройки случайно выбранных «просёлочных» улиц по краям окна.

И обратный пример, когда при другом масштабе подписи улиц наоборот рисуются в избыточном количестве: http://img338.imageshack.us/img338/7766/40272272.png

На обычных Яндекс.Картах видимость улиц и читаемость подписей к ним при любом масштабе сделаны на отлично. Может быть, имеет смысл поинтересоваться у коллег из соседнего проекта, как им это удалось?

5 комментариев

Грубо говоря - на проекте при определенном маштабе - фикированный размер шрифта. Если длина названия улицы при определенном размере умещается на отрезке - то она отображается независимо от типа улицы (это самое главное!!!. т.к. отображать названия на едином участке улицы карта ещё не умеет)


 


Собственно весь вопрос, доработать процесс определения куска улицы с одинаковыми атрибутами.

отображать названия на едином участке улицы карта ещё не умеет
Это ты так думаешь, или ты это знаешь?

 

В общем, в настоящий момент это проблема алгоритма (пока он более простой, хотя и его простым не назовёшь). Если разработчики доработают его, будет чудесно. Но независимо от того, как они сделают, чтобы отрезки улицы вопринимались как единое целое - динамическим вычислением при отрисовке или во время редактирования записью в базу, - это процесс длительный и непростой. Пожалаем разработчикам удачи! :) Потому что это нужно доработать.

Имхо,можно сделать так.
Вводим ранги улиц, например так : 4-магистраль, 3-основная, 2-второстепенная, 1-проезд/просёлок, 0-пешеходная/вело.
Для каждого узла ищем улицу с самым высоким рангом, среди создающих узел. Получаем "ранг узла". Если таких улиц больше чем одна, ранг +=1.
При нанесении названий вдоль улицы, учитываем только узлы с рангом больше ранга улицы.

И ещё. Наверное, стоит почаще рисовать стрелочки на участках дорог с односторонним движением. Например, через каждые эн метров. И сделать их видимыми при более мелком масштабе (до z=14 хотя бы)

Дороги сейчас вообще ода из самых проблемных областей, в том числе и их отображение. Про масштабирование - спасибо! Проблему мы знаем и будем решать.