我正在尝试使用DeepZoom制作一个地图应用程序。它已经通过从服务器加载磁贴图像来工作。问题是,加载速度不够好,在下载新的磁贴时总是有一个小的滞后。
我的想法是一次下载整个tiles包,然后从本地源加载它们。我知道这在某种程度上与DeepZoom的想法相矛盾,但我认为它确实是我需要的。
有没有人知道如何让MultiScaleImage从本地源加载磁贴?我已经尝试创建自己的MultiScaleTileSource并覆盖GetTileLayers方法,但没有成功。
一定有办法的,对吧?提前感谢!
发布于 2009-01-11 14:40:19
我没有在Silverlight中使用过DeepZoom,但为了使用HD View,我使用了两种方法:
只需将文件放在文件系统上,并将XML指向它们,唱着"file://...“”,
并提供
与over- the -wire方案相比,两者都工作得很好,性能也如预期的那样有了很大提高。
我不确定(1)是否可以使用DeepZoom,但(2)应该可以很好地工作。你不需要使用Apace (或IE)。考虑您自己的用Python或C#编写的HTTP服务器,它将请求的URL映射到本地文件。
如果您确实编写了自己的HTTP服务器,那么您可以考虑懒惰地下载文件。这将意味着用户仅在他们第一次查看图像的某个区域时才会看到滞后。然后,您的服务器只是充当一个磁贴缓存,通常的缓存回收策略可能适用(考虑到最近最少使用的策略)。
发布于 2009-04-12 23:13:48
WIth证书限制,这是完全可能的。事实上,我一直都在这样做-我在本地磁盘上生成一个银光深缩图像,然后创建一个用户可以双击的网页,它工作得很好。
首先,限制:如果你正在使用集合,你经常需要加载一些数据文件来知道集合中每个msi的位置-这需要一个web请求-而我不知道如何在本地工作。无论出于何种原因,MSI控件在本地加载文件都没有问题。
所以,这是我如何组织我的web项目的。在根文件夹中,我有xap等,它包含了我的silver light控件(非常简单)。这基本上等同于ClientBin文件夹。现在,我在该文件夹中放置了一个"meeting“文件夹,其中包含编写器工具("meeting_files”和"meeting.xml")的输出。当然,THe meeting_files包含微指令集的所有位。
现在,根HTML文件非常简单-对于MSI的source参数,我只给它提供了"meeting/meeting.xml“-一个相对路径。
这对我来说很管用。如果你想要更多的信息,请告诉我(好吧,这是在你问了问题很久之后,它可能不再重要了)。在本地的情况下,性能是很好的-但对于一个像样的大小的图像,下载所有文件可能需要花费很长时间。我的一些非常大的深度缩放图像是10 GB的!
https://stackoverflow.com/questions/432956
复制相似问题