Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2012-04-26

Веб-картография

Сегодня обнаружился любопытный эффект (даже не столько любопытный, сколько поганенький, и не эффект а дефект).
Есть такой вьювер для карт — ArcGIS Viewer for Silverlight (вот ненавижу такие названия, должен быть короткий и удобный коденейм). Красивый, местами удобный, расширяемый. Мы его используем. Так сегодня он был пойман с поличным — нёс отсебятину.

Вообще, технология довольно проста. Где-то на сервере лежит куча растровых картинок — тайлов, которые складываясь вместе дают на экране красивое изображение местности. Задача клиентского софта (и ArcGIS Viewer for Silverlight в частности) сводится к вытягиванию с сервера нужных в данный момент картинок, после чего сложить их вместе и вывести на экран. Ну все знают гуглокарты или яндекскарты.

Так этот, не побоюсь этих слов, ArcGIS Viewer for Silverlight, не может вывести растровую картинку 1:1 (пиксел картинки в пиксел экрана). Он эти картинки масштабирует! То сожмет, то растянет, собака страшная.

Поскольку лучше один раз увидеть, чем сто раз услышать, я подготовил анимированную гифку (писк моды — на гуглодрайве!). Гифка более мегабайта и все время моргает, поэтому прямо на страницу не стал ставить.
В картинке два кадра, один показывает изображение правильно, 1:1, другой показывает растянутое изображение. Растянутое — это ArcGIS Viewer for Silverlight.
По сцылке открывается гугловьювер, который дополнительно сжимает картинку, поэтому лучше всего щелкануть ПКМ на изображении и выбрать «View image» (или как там в вашем браузере).

У меня еще есть анимашка (не стал выкладывать), где этот вьювер не растягивает а сжимает картинку. Логика его действий непостижима, чего еще от него ждать — неясно.

Собственно, что я хотел сказать? Отстой этот ваш Сильверлайт Вьювер, дорогие товарищи из ESRI.


UPD

Я нашел решение проблемы. Как оказалось, это не бага, это фича. Глубоко в недрах вьювера есть параметр
MapApplication.Current.Map.SnapToLevels
если задать его
MapApplication.Current.Map.SnapToLevels = true;
то вьювер перестает заниматься отсебятиной.

1 комментарий:

  1. Этот комментарий был удален администратором блога.

    ОтветитьУдалить

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)