Здравствуйте, Homunculus, Вы писали:
H>У меня есть гигантская детализированная SVG карта города. Размером около 1.5 гигов. H>Ясно, что и загрузка и рендеринг занимает кучу времени. Надо оптимизировать.
H>Как рендерят большие карты?
Я бы, наверное, забыл на минутку, что у меня есть конкретный формат SVG, и считал бы, что у меня есть много-много векторов.
Всю-всю поверхность я бы разбил на клеточки, и в каждой клеточке хранил бы те вектора, которые с ней пересекаются (даже если они начинаются и кончаются в другой клеточке).
Для отрисовки, я бы грузил вектора из тех клеточек, которые попадают в окошко, убирал бы повторяющиеся вектора (они могут возникнуть, если какой-то вектор проходит через несколько клеточек), и дальше отрисовывал бы.
Исходный SVG надо один раз переработать, и хранить результат в виде, удобном для поклеточной загрузки. Например, в виде какой-то незамысловатой базы (напрашивается SQLite)