Frank R. Haugen Ответов: 1

Отображение WPF map control с миллионами POI в настольном приложении


Фон
Я работаю над личным проектом (мобильным приложением), в котором геолокация является функцией. Пользователи регистрируют местоположение в MongoDB (если это коммерчески жизнеспособно, то это будет Azure CosmosDB, но сейчас я тестирую с имитированными данными локально). Чтобы учесть масштаб, я развиваюсь с умом, что у меня будет 10 000 000 локаций (довольно нереально, но я уже облажался раньше, недооценивая, поэтому я умножаю свой расчетный максимум на 10)

Необходимость
Мне нужно "управление"-приложение, которое предпочтительно имеет карту мира с "точками" (это достижимо с помощью Bing Maps и WPF MapControl, а также с помощью кнопок).

Вопрос
Когда я тестировал со 100'000 местоположений, приложение использует 3 ГБ оперативной памяти, занимает 10 минут для загрузки, а навигация по его вкладкам выходит за рамки медленной. если бы я масштабировался до 10'000'000 локаций, это, вероятно, убило бы мой компьютер

Любая помощь, мысли и вклад будут с радостью восприняты

Что я уже пробовал:

Google только толкает DevExpress и Telerik мне в лицо, и ничего в моем ценовом диапазоне

Richard MacCutchan

Вы не должны пытаться построить такие большие объемы за один раз. Как и в случае с виртуальными списками, вам нужно собирать данные и отображать их только по мере того, как пользователь запрашивает больше, или данные должны отображаться в представлении.

Frank R. Haugen

Проблема в том, что "мастер-карта", должна показывать найденные местоположения.

И я действительно удивлен, что элемент управления Bing Maps не имеет функций для обработки такого количества данных (или загрузки их лучшим способом)

Richard MacCutchan

Я думаю, вы обнаружите, что они делают то, о чем я упоминал выше. Информация есть в базе данных, но точки отображаются только тогда, когда они должны быть показаны. Попытка управлять картой мира со всеми точками, уже отмеченными и удерживающими ее в памяти, никогда не сработает.

1 Ответов

Рейтинг:
8

Frank R. Haugen

Решение заключается в использовании html и многих доступных там функций bing maps, например heatmap