1

我需要在画布上渲染大量 hextiles。我想这样做,以便我只渲染用户可见的图块并在用户滚动时加载额外的 hextiles(使用拖动或箭头键或平移控件)。我脑子里有基本的想法,但我正在寻求帮助,以提出一个更强大的解决方案,可以很好地扩展。

我的想法和现在可以做的:

一个。识别需要加载到屏幕的图块并从服务器获取用于渲染它们的数据 b. 当用户拖动时,找出需要加载的新图块集并获取数据并再次重新加载整个屏幕。

这可行,但它不会给人滚动的感觉——它基本上会突然重新定位所有东西。理想情况下,我想在滚动时获得谷歌地图的感觉。我一直在尝试在地图一侧加载一些图块,并且在拖动时只滚动底层画布,但这并不能很好地工作,因为画布用完了......如果我有一个画布,那就太好了表现得像一个循环缓冲区,所以在任何方向滚动只会在内存中保留一定数量的图块,我可以在各个方向连续滚动。

非常感谢任何想法或有用的提示。

谢谢!

4

1 回答 1

0

我建议使用 Google Maps Flash API 作为起点。您可以创建一个 CustomTileLayer,如果您有一个大的源图像,您可以搜索图像金字塔制造商,它们会将您的图像切成不同缩放级别的样本(通常我相信它最终会创建一个使用缩放级别的文件夹结构作为文件夹名称,然后根据图像的分辨率和缩放级别在每个文件夹中有 x,y 切片)。如果以任何方式都不需要缩放,那么您只需要一个缩放级别,并且希望禁用 Map 控件中的任何缩放控件。让我知道您是否有理由避免这种情况或认为它不是一个好的解决方案(可能只是不知道它的存在,但我想如果您想要谷歌地图的行为方式,为什么不使用谷歌地图作为基础)。如果您在深入了解后需要更多帮助,请告诉我,我很乐意提供帮助,我自己从未实现过 CustomTileLayer,但对 Google Maps Flash API 有一些经验(它也很灵活,请确保您使用正确的 swc 一个是 Flash,另一个是 Flex,不包括两者)。

祝你好运,肖恩

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

于 2011-02-08T20:00:01.320 回答