PDA

Просмотр полной версии : На чём написаны: http://maps.yandex.ua


Роман Вадимович
14.03.2008, 14:56
Подскажите пожалуйста название этой технологии если кто знает?

Потому что правая кнопка работает, а пишу я только под Flash и вижу что не на нём сделано.
Ух очень шустро работает движок :)

etc
14.03.2008, 15:02
На JavaScript.

Роман Вадимович
14.03.2008, 15:39
Гениально!
Но я предполагаю, что свои минусы для такого подхода.
Не знаю как у остальных, но у меня просто летает, по сравнению со Google Maps.

Mr. Fixit
14.03.2008, 18:53
я лично за вас рад)

etc
14.03.2008, 19:02
http://flashearth.com/

PinNoKio
18.03.2008, 21:00
http://flashearth.com/
очень интересная штука, спсб

Роман Вадимович
18.03.2008, 21:40
Да спасибо. Мне тоже очень нравится - мне кажется самый лучший движок среди аналогов.
Внушает уважение возможность поворота карты, при этом ничего не тормозит даже на медленном пк.

etc
18.03.2008, 22:10
Вы все ещё думаете, что JavaScript быстрее? :)

Mr. Fixit
18.03.2008, 22:22
А в чем проблема отображения карты?

Раньше отображение определенной области было, сейчас недоступно.. :(

Роман Вадимович
18.03.2008, 22:27
Ну как сказать. Я JavaScript не люблю и был поражён, что на нём можно написать картографических движок. При чем визуально похожий на flash.
И естественно понимаю, что flash имеет значительные преимущества в графических возможностях.
И пишу картографический движок для специфических целей и столкнулся с проблемой, которую я боюсь разрешить не получится:
заправшивая кусочек карты, невозможно прервать закачку, браузер докачает файл, при этом возникают задержки на низкой скорости инета при быстрой прокрутке карты. Мне Вашем форуме посоветовали решение, но у меня не удалось его реализовать.
У JavaScript прервать загрузку файла у меня получалось.
Именно это быстродействие для меня тоже очень важно.

etc
19.03.2008, 00:04
AS3 в руки.

relevance4
19.03.2008, 01:59
браузер докачает файл, при этом возникают задержки на низкой скорости инета при быстрой прокрутке карты
что-то мне подсказывает, что это недостаток не флэша, а разработчика

Роман Вадимович
19.03.2008, 13:00
что-то мне подсказывает, что это недостаток не флэша, а разработчика
Если Вы считаете, что с данной проблемой столкнулся только я, то вы ошибаетесь.
В многочисленных форумах подобная тема обсуждалась, но окончательного ответа не было найдено.
Мне предложили попытаться грузить "null" вместо картинки, которая мне не нужна, но в различных браузерах картинка все равно докачивается. Поэтому если Вы меня сможете убедить в обратном, я буду только рад.

badun
19.03.2008, 13:53
написали же "AS3 в руки."

iNils
19.03.2008, 19:29
...но в различных браузерах картинка все равно докачивается...Это как раз доказывает, что проблема браузера.

relevance4
19.03.2008, 19:48
грузить "null" вместо картинки
я был уверен, что это и есть решение проблеммы...

KidsKilla
20.03.2008, 14:50
картинка не докачивается. она уже успела скачаться, но не успела отрендериться. только и всего

Роман Вадимович
27.03.2008, 01:14
Купил книжку AS 3.0 - в магазинах нашего города, найти её было настоящим подвигом. Учу!
Если кому-то будет интересным, я сегодня мучал http://flashearth.com/
У меня медленный инет (128 килобит/сек). При загрузке движка все кусочки появляются достаточно быстро.
Затем я попробовал каждую секунду приближать карту на одно деление не дожидаясь загрузки карты. Таких приближений я сделал около 20-ти. Мне пришлось после этих действий ждать почти минуту, чтобы загрузился последний масштаб. Все это время в фоне грузились "ненужные" куски. Браузер - Firefox/2.0.0.13.
С высокими скоростями инета это не проблема - карта работает отлично. Но как всегда хочется техничного решения и как обидно, когда его не находишь.
В любом случае спасибо всем за помощь.
На последок хотел сказать что карта wikimapia.org - лишена этого недостатка, т.к. написана на JavaScript. На сколько я понимаю динамическое удаление тега картинки автоматически прекращает её докачку.
Буду копать в этом направлении. Может идея супер тупая, но если попробовать загружать картинки не флешем, а JavaScript`ом. И по событию загрузки картинки выполнять loadClip, при этом картинка уже будет взята из кеша.

iNils
27.03.2008, 02:17
картинка не докачивается. она уже успела скачаться, но не успела отрендериться. только и всегоНе в сафари, там докачивается.

KidsKilla
27.03.2008, 14:34
Буду копать в этом направлении. Может идея супер тупая, но если попробовать загружать картинки не флешем, а JavaScript`ом. И по событию загрузки картинки выполнять loadClip, при этом картинка уже будет взята из кеша.
я вот не уверен, но кажется кэш собственный у бровзера и флешовый -- разные вещи...

iNils
27.03.2008, 14:44
я вот не уверен, но кажется кэш собственный у бровзера и флешовый -- разные вещи...одинаковая... вещь

Роман Вадимович
28.03.2008, 02:21
Добрый вечер всем!
Если кому интересно - у меня получилось сделать задуманное.
Кусочки карты, которые необходимо было отобразить я "предзагружаю" средствами JavaScript:

var img = new Image();
img.src = 'vodka.jpg';

В любой момент я могу сделать:

img.src = null;

И загрузка моментально прервется. По событию:

img.onload

Через ExternalInterface MovieClipLoader`ом гружу уже скачанную картинку.
Если честно, быстродействите на быстром интернете ужудшилось, но на медленном повысилось.

Fernando Costa
28.03.2008, 03:01
и как по вашему - такие манипуляции оправданы? Игра стоит свеч?

Роман Вадимович
28.03.2008, 11:41
Пока сложно судить. Т.к. большинство пользователей сервиса, который я разрабатываю будут заходить на сайт с ноутбуков по средствам CDMA сетей.
В нашем городе эта технология передачи данные достаточно плохо развита, в связи с этим низкая скорость передачи данных.
Поэтому целевая аудитория получит заметное улучшение скорости работы системы.
При локальном тестировании - система начала работать немного медленнее в связи с накладными расходами на передачу Flash -> JavaScript -> Flash.
Но не составит сложности сделать разветвление посетителей, предоставив наиболее приемлемый вариант.

iNils
28.03.2008, 11:42
Сколько весит картинка?

Роман Вадимович
28.03.2008, 12:09
Каждая картинка имеет размеры 256*256 пикселей и весит от 1кб до 30кб (средний размер 15кб).
Для отображения на мониторе 1024*768 карты составляющей 70% экрана нужно одновременно отобразить где-то 5*4 таких кусочков с учетом резерва для прокручивания карты.
Получается примерно 20*15кб = 300 кб.
В прошлом варианте при смене масштаба "недозагруженные" 300кб, продолжали грузиться, а только после них начинали грузится новые.
Пользователь озадаченный отсутствием событий на экране опять менял масштаб в надежде что всеже что-то произойдет, а этого не происходило - в список закачки добавлялись новый файлы.
Теперь как часто бы не менялся масштаб - моментально начинают грузится новые кусочки.
P.S. на работе у меня 8Мбит/сек интернет, поэтому эти 300 килобайт загружались за 1-2 секунды.

iNils
28.03.2008, 12:24
Картинки не надо грузить всем скопом, а по очереди, одну за другой, браузер все равно больше двух сразу грузить не даст.
Поэтому в случаии с сафари (остальные браузеры при загрузки null старую загрузкую прекращают) вы потеряете максимум 30 кб при каждом прекращении процесса, да % пользователей сафари не так велик. Даже сидя на мобильном интернете, этоне так страшно. Я сам летом 1,5 месяца сидел на GPRS, даже гугол-мапсом пользовался пару раз - не умер.

Роман Вадимович
28.03.2008, 12:51
Спасибо за совет.
Я пробовал картинки действительно грузить по очереди. Но быстродействие ужасно упало.
Т.к. тратилось время на инициализацию картинки и событие загрузки, а потом производился переход к следующей.
Как оказалось браузер может грузить несколько картинок одновременно и обычно это происходит быстрее чем по очереди. Я как-то даже нашел готовую реализацию очереди для загрузки "com.qlod.LoaderClass.as".
http://www.helpqlodhelp.com/stuff/loaderclass/LoaderClass.doc.html
Но результат меня не устроил.

Если я не ошибаюсь http://maps.google.com/ написан же на JavaScript? Там работает правая клавиша. Или я ошибаюсь?

iNils
28.03.2008, 13:48
Как оказалось браузер может грузить несколько картинок одновременно и обычно это происходит быстрее чем по очереди.IE грузит только в два потока.

Роман Вадимович
29.03.2008, 12:37
Я пробовал качать в 2 и 3 потока. Но картографический движок предполагает случаи, когда запрашиваемого участка карты нет на сервере.
На работе движка такие моменты выливались в задержку, во время которой определялась невозможность загрузить отсутствующий кусочек.
Как ни крути на карта грузилась в 1,5-2 раза медленее - жаловались пользователи.

iNils
29.03.2008, 12:57
Ну... к вопросу можно подойти творчески.
Например, определять количество и зону загружаемых картинок на общей карте, а также количество запросов. То есть:
1. Если открываемый фрагмент карты не имеет загруженных картинок, то загрузка начинается с центральной картинки и по спирали. Почему? Пользователя тыкая в интересующую его область, тыкает в ее центр, а не рядом с ней, поэтому его в первую очередь интересует центр. И мы грузим сначала именно его.
2. При сдвиге карты без изменения масштаба, надо определить величину сдвига относительно центра. Если сдвиг небольшой, то догружать картинки надо от вектора направления движения (центр - картинку справа - картнку слева - опять справа - опять слева). Если же сдвиг большой (больше половины видимой ширина карты), то опять относительно центра карты.
3. По первым полученным данным, пользователь может понять, устраивает его текущее положение или масштаб. Поэтому в первую очередь надо загрузить в один поток, ожидая реакции пользователя, если же он ничего не делает, можно начать грузить сразу в n-потоков, уменьшая время на отклик сервера.

Роман Вадимович
29.03.2008, 14:09
Очень интересные идеи. До вашего сообщения думал только о первом пункте, т.е. о первоочередной загрузке центральных сегментов.
Прочитав остальные - понял, что есть ещё много вещей, которые могут позволить улучшить сервис.
Обязательно воспользуюсь вашими советами, спасибо :)