Информация об изменениях

Сообщение Как рендерят огромные карты? от 02.07.2020 2:44

Изменено 02.07.2020 2:54 Homunculus

Как рендерят огромные карты?
У меня есть гигантская детализированная SVG карты города. Размером около 1.5 гигов.
Ясно, что и загрузка и рендеринг занимает кучу времени. Надо оптимизировать.

Как рендерят большие карты?

Какая мысль очевидно приходит в голову. Во-первых, сделать несколько растров под разные зумы. При уже более-менее большом растре — начать бить на клетки и погружать те части, которые видит пользователь в данный момент. Это как бы очевидный подход.
Но есть минусы, которые не нравятся. Во-первых, эти самые разные растры под разные зумы. Что-то дизайнерски некрасивое в этом есть. Во-вторых, перевод в растр сжирает преимущество наличия вектора.

Есть еще другая мысль. Мне собственно все преимущества SVG и не нужны. Нужны только контуры и на некоторых контурах заливка сплошным цветом. Все. То есть мысль перевести SVG в какой-то свой формат контуров и уже эти объекты раскидать по разным файлам и подгружать по мере необходимости.

Как делается обычно рендеринг карт или если не знаете, то как бы сделали вы?
Как рендерят огромные карты?
У меня есть гигантская детализированная SVG карта города. Размером около 1.5 гигов.
Ясно, что и загрузка и рендеринг занимает кучу времени. Надо оптимизировать.

Как рендерят большие карты?

Какая мысль очевидно приходит в голову. Во-первых, сделать несколько растров под разные зумы. При уже более-менее большом растре — начать бить на клетки и погружать те части, которые видит пользователь в данный момент. Это как бы очевидный подход.
Но есть минусы, которые не нравятся. Во-первых, эти самые разные растры под разные зумы. Что-то дизайнерски некрасивое в этом есть. Во-вторых, перевод в растр сжирает преимущество наличия вектора.

Есть еще другая мысль. Мне собственно все преимущества SVG и не нужны. Нужны только контуры и на некоторых контурах заливка сплошным цветом. Все. То есть мысль перевести SVG в какой-то свой формат контуров и уже эти объекты раскидать по разным файлам и подгружать по мере необходимости.

Как делается обычно рендеринг карт или если не знаете, то как бы сделали вы?