![]() |
|
||||||||||
|
|||||
|
Подготовка:
Есть векторная карта города (cdr), с помощью VBA (for Corel) обходим все слои и элементы на них и заносим данные в тектовый файл в формате: id=77164;layer=first;bkcolor=68,158,214;pencolor=;type=curve;coords=0.976,1270.20,112.921,1272.4345..... -серверный скрипт php, который парсит данные текстового файла и генерит xml -flash который грузить xml сгенеренный php скриптом и отрисовывает с помощью moveTo,lineTo полигоны, полилинии,.... Все обсуждения, которые велись на данном форуме как привило были о уже готовых MovieClip-ах картах - созданных импортом во flash, отрисованных руками во flash, ... или таких же готовых но подгружаемых swf по слоям. Вопрос: стоит ли так создавать карту динамически отрисовывая ее? как избежать тормозов при работе flash с данными и отрисовкой? как оптимально распределить чем занимается flash, а чем php? Буду признателен любой информации по теме. |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
А что полигоны просто однотонные квадраты?
. Нужно ли тебе чтобы она была именно в векторах и зачем?Самый производительный вориант это рисовать все в битмап и все... Если нет то нужно использовать к каждому полигону который ты будеш рисовать в мувиклип cacheAsBitmap. А вообще давольно расплывчито все понятно и многое не ясно что нужно. Вот если ты полоностью бы описал задачи, и конктретно расипсал вопросы, то дали бы на много больше советов, и притом намного больше делньых советов. ![]() P.S Слоев нету... |
|
|||||
|
вот пример того что получается Карта амурской области из cdr файла
данная карта - это пример, содержит небольшую часть объектов от того, что должно быть в карте города, всего 633 объекта. Интересен сам принцип подхода к данной задаче, оптимизация. В настоящий момент при попытке отрисовать карту города получаем огромное время ожидания завершения отрисовки, не рабочий вариант |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Вообще здорово!
У меня такие цифры высветились (GPRS): Цитата:
1) xml грузиться долго 2) строиться относительно долго Первую проблему можно решить оптимизацией xml Вторую - не знаю, как реализовано построение. Откуда там 93 мувика? Какие расчеты при построении кривых? |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
У меня 5 скунд построение было. Загрузка 34секунды 633 мувиклипа. Загрузка очень долгая. Отрисовка не особо долгая. Второй раз
Время загрузки xml: 1163 ms. Время отрисовки: 6044 ms. Всего MovieClip: 633 Либо это хост тупит. Либо ты очень сильно оптимизировал хмл за последние часы )). Но учитывая что это небольшая часть обьектов хотелось бы знать сколько их всего будет чтобы давать оценки какието. |
|
|||||
|
После переноса на нормальный хост и оптимизации xml получился приличный прирост скорости (в отдельных случаях в 5 и более раз).
Просмотр карт Но вопрос остался стоит ли далее идти по этому пути - векторной отрисовки карты? интересно мнение людей занимавшихся/ющихся картами во flash. Есть еще одно направление по данной теме - это перенос функции отрисовки карты с клиента flash на сервер в php с использованием php_ming.dll, а на клиенте оставить лишь подзагрузку динамически сгенеренного swf файла. Но тут тоже могут быть грабли - ming вроде как больше не поддерживается его производителями, и возможно в php 6.X просто не быть данного расширения. Что посоветуете? |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Флеш то карту нарисует без проблем. Другой вопрос какой размер карты будет конечный и на сколько на будет тормазить. Вот изходя из этого стоит думать о том чтобы рисовать все в битмап >_<
|
|
|||||
|
Регистрация: Aug 2008
Сообщений: 4
|
Во тоже пытаюсь сделать что-то подобное. Долго конечно это все грузится. seasergey, а можно исходник для изучения попросить? я новичок во flash
|
|
|||||
|
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Гляньте в сторону SVG. У нас тут iv занимался рефакторингом парсера. Я думаю его возможностей с лихвой хватит для ваших нужд.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 04:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|