панорамирование для шестидесяти - PullRequest
1 голос
/ 27 января 2011

Мне нужно визуализировать большое количество хексили на холсте.Я хотел бы сделать так, чтобы я рендерил только плитки, которые видны пользователю, и загружал дополнительные шестнадцатеричные элементы при прокрутке пользователя (используя клавиши перетаскивания или стрелки или элемент управления панорамированием).У меня в голове есть основная идея, но я ищу помощь в создании более надежного решения, которое будет хорошо масштабироваться.

Что я имею в виду и могу сделать прямо сейчас:

a.определить плитки, которые нужно загрузить на экран, и получить данные для их рендеринга с сервера. b.когда пользователь перетаскивает, определите новый набор плиток, которые нужно загрузить, получите данные и перезагрузите весь экран снова.

Это работает, но не дает ощущения прокрутки - это, по сути, внезапно все перемещает.В идеале, я хотел бы получить ощущение карт Google при прокрутке этого.Я играл с загрузкой некоторых плиток сбоку от карты и прокручивал только базовый холст при перетаскивании, но это не слишком хорошо работает, потому что холст кончается ... было бы очень здорово, если бы у меня был холствел себя как круговой буфер, поэтому прокрутка в любом направлении оставляла в памяти только определенное количество фрагментов, и я мог непрерывно прокручивать во всех направлениях.

Любые мысли или полезные советы приветствуются.

Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2011

Я бы предложил использовать Google Maps Flash API в качестве отправной точки для этого.Вы можете создать CustomTileLayer, и если у вас есть одно большое исходное изображение, вы можете искать создателей пирамид изображений, которые будут разделять ваше изображение на образцы для разных уровней масштабирования (обычно я считаю, что в итоге создается структура папок, использующая уровень масштабирования).в качестве имени папки, а затем имеет x, y плитки в каждой папке в зависимости от разрешения изображения и уровня масштабирования).Если в любом случае масштабирование не является обязательным, у вас будет только один уровень масштабирования, и вы захотите отключить все элементы управления масштабированием в элементе управления «Карта».Дайте мне знать, если есть причина, по которой вы избегаете этого или считаете, что это не хорошее решение (возможно, просто не знали о его существовании, но я думаю, что если вы хотите что-то вроде поведения карт Google, почему бы не использовать карты Google в качествеоснова).Если после закапывания вам понадобится дополнительная помощь, дайте мне знать, и я буду рад помочь, я сам никогда не реализовывал CustomTileLayer, но имею небольшой опыт работы с Google Maps Flash API (он также гибкий, убедитесь, чтовы используете правильный swc, один - Flash, другой - Flex, не включайте оба).

Удачи, Шон

http://nl -samples.googlecode.com / svn/trunk/flexmap/9a/bin-release/CustomProjection.html

...