У мене проблеми з оптимізацією малювання карти, подібної Google. Він працює нормально на сотні очок, але коли мова йде про більші суми, як тисячі, він стає нечітким і повільним. Також непомітно це виглядає дивно.
Мені б хотілося знати, як оптимізувати алгоритм малювання, щоб намалювати менше місць, щоб це виглядало як невисокий розмір на Google Maps.
Однак я також малюю зв’язки між місцями, і я не можу це оптимізувати.
Будь ласка, опублікуйте все, що ви можете придумати, я повинен закінчити це і надіслати завтра.
Ось як виглядає:
Відповіді:
0 для відповіді № 1Думаю, я б спокусився не промальовувати цекоротші за поріг (і я маю на увазі це з точки зору вікна перегляду, а не абсолютної відстані). Це означає, що при зменшенні масштабу карти вам доведеться менше малювати, і карта буде виглядати менш зайнятою, і коли карта буде масштабуватися в лініях між цими сусідніми точками, вони стануть видимими. Редагувати: насправді, подумавши про це ще раз, я думаю, я застосував би це обмеження довжини лише тоді, коли на екрані є велика кількість рядків - або зробимо поріг довжини функцією кількості рядків на екрані.
Думаю, я також спокусився б не малювати лініївід пунктів, які перебувають поза екраном (поза вікном перегляду) або, принаймні, зовсім від екрану (поріг від центру огляду). Я б запропонував спершу спробувати цю зміну.
Ці зміни можуть здатися, що вони приховуватимуть інформацію (і вони будуть), але, як це виглядає, карта настільки зайнята цією інформацією, яка в будь-якому разі є марною.
1 для відповіді № 2
Ось дві ідеї:
Кожен об’єкт, який ми малюємо на карті, має додаткове значення в базі даних, "Рівень масштабування". При збільшенні додаткових елементів буде показано виходячи з цього значення.
Другий шлях до цього - використовувати групування. Якщо елементи починають перетинатися, показуйте одну точку з [10 предметів]. Показуйте елементи під ним лише під час збільшення.
0 для відповіді № 3
деякі підказки:
- область кліпу, щоб намалювати точки лише в області кліпу
- Ви можете перевірити відкритий код GIS-проекту, подивитися, як вони оптимізують малювання.