Pull to refresh

Comments 25

Ссылка на архив с исходником — в самом конце статьи
я нашел. вы предлагаете скачать, распаковать и посмотреть?
Это уже вам решать :)
я может чего не понимаю, но ведь можно это где-то выложить в рабочем виде?
Простите, но теперь я вас не понимаю — вы хотели, чтобы я выложил скомпилированный exe? Поясните, что значит «в рабочем виде»
а теперь понял. это не для веба. сорри за тупняк
боюсь весь приведенный xaml-код переписанный на C# хуже читался бы. На то xaml и создавался
Вообще прикол в том что SVG и XAML это один и тот же формат :) например, конверсия из PathGeometry в SVG примитивна — где-то 10 строк кода или около того.
VItus, скажите пожалуйста, может ли wpf качественно и быстро отрисовывать большие карты (со множеством объектов: реки, дома, дороги и прочее, большие полигоны по 20к точек).

С уважением, Kets.
Можно использовать MultiScaleImage(DeepZoom), но он работает только в Silverlight'e. Для WPFа есть вот такой костыль, на сколько быстро он работает не знаю, но DeepZoom работает очень хорошо!
Дипзуум не отрисовывает растр из вектора, он просто выводит растр и осуществляет зуум между изображениями разного масштабами…

Отрисовка же через WPF очень медленная(если брать тысячи полигонов), даже если поддерживается ускорение.
а у кого отрисовка быстрая?
Если грамотно отсекать невидимые объекты, то можно спокойно работать с детализованной до дома картой города-милионнера.

Мне это удавалось. Было около 16000 строений + 1000 улиц.
это называется ГИС :)
Kets, признаться, с такими полигонами в WPF не сталкивался. Подозреваю, что работать всё-таки будет не слишком быстро :) Хотя может и здесь есть свои «трюки»
А откуда у вас в полигонах по 20к точек? Это что за объект такой, если не секрет?
Это мультиполигон в Mapinfo, ну и плюс по 10к в полигонах регионов РФ.
Просто у нас на работе как-то попробовали поэксперементировать с WPF, отрисовывает-то он быстро, а вот зум и передвижение — сильно подтупливали. Вот мне и стало интересно спросить у знающего человека. Пробовали на 4-м .NET'е (вроде MS туда добавила кэширование в битмап) — в итоге 4Гб памяти были съедены :)
Поэтому создалось впечатление, что WPF подходит для отрисовки небольшого количества объектов.

Поэтому остались пока на managed direct x.

И спасибо все за ответы.
Столкнулись с аналогичной проблемой, когда делали интерактивную карту на WPF (крутили в 3D).
При запуске анимации зуммирования, иногда появлялись рандомные лаги размером ~ в секунду.
Такое ощущение что в этот момент движек дергал какую-то ресурсоемкую функцию.

Тогда с первых двух попыток отловить причину так и не удалось.
Теоретически, можно конечно поиграться с отпимизациями которые реокмендует майкрософт… — сделать например всему Freeze(), итп (тогда до этого руки так и не дошли).

Но в целом ощущение что в какой-то момент действительно упираешся в возможности движка WPF по количеству объектов. Все-таки оно не для слишком сложных сцен. Для навороченой графики MS рекомендует XNA. :]
Sign up to leave a comment.

Articles