如何使用微软Rx框架在WinRT/Windows 8中有效实现Bing地图

28
在我的电子商务应用程序中,我需要在Bing地图上标出附近的店铺。此外,当缩放和平移地图时,我需要根据地图中心更新店铺。为了实现这个功能,我首先选择传统的编码方式,具体步骤如下:
1. 初始化时,我将发送 API 请求以获取位置,并在地图上标出商店。
2. 在地图视图更改事件中,我将根据地图当前位置发送后续请求以获取附近的商店。
在此实现过程中,单个API请求会返回约400家商店。我要在地图上标出这些店铺。但是当我缩放或平移地图时,它会同时发送多个请求并尝试在 UI 上更新 pushpins 标记,最终会阻塞 UI,导致地图在我的应用程序中表现不佳。
在 Google 搜索中,我发现了许多关于使用 Microsoft Rx 框架实现类似功能的建议。但是没有找到任何适合我的目标的正确代码示例。请问是否有人能帮助我或指导我解决我的问题。
请注意,我需要在地图上平均标注400家商店。
敬礼,
Stez。

1
这是一个相当大的请求!我建议您查看几年前Bart deSmet编写的Hands On Lab(HOL)。我想“Google Suggest”搜索文本示例将非常类似于您所需的代码/概念。 - Lee Campbell
1
实践实验室链接在这里:http://blogs.msdn.com/b/rxteam/archive/2010/07/15/rx-hands-on-labs-published.aspx。您可以在此处找到使用 Rx 2.1 的解决方案:https://github.com/dlhartveld/Rx-2.1-HOL-Solution。 - lindydonna
1个回答

2
听起来你可能会在缩放时用多个请求饱和连接和/或服务器。你需要做的是避免直接从该事件中调用API。相反,你可以启动一个计时器(或重新启动,如果已经运行)。这样,你可以缓冲那些重复的事件,直到用户停止缩放,然后只提交一个API请求。
当然,你需要调整计时器的持续时间,以找到等待事件完成和给用户响应更新之间的平衡 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接