繁体   English   中英

在Google Maps Widget上绘制Google Maps GeoCoder请求的并发问题

[英]Concurrency Issue plotting google maps GeoCoder request on Google Maps Widget

我的程序基本上包括3个步骤:1)向某些坐标查询Geocoder对象并将其存储在集合中2)将结果发送到我的主模块以在地图上进行绘制3)将其绘制在google map小部件上

我已经创建了一个Requestor类来处理地理编码-此类具有getResults()函数,该函数将坐标的ArrayList返回到要在地图上绘制的主模块。
但是,当我尝试在onModuleLoad()方法范围内执行所有3个步骤时,遇到了一个并发问题,并从结果集中提取了空结果。 我已经使用一组3个按钮(请求,提取结果和绘图)来进行此工作,但是希望在模块加载时自动将其触发。
我怀疑这与触发事件和在适当的位置放置处理程序有关; 如果是这种情况,请提供一个具体的示例,因为我试图找到一些关于EventHandlers的很好的教程。

听起来Requestor类是异步调用的。 在这种情况下,您可以使用EventBus (使用HandlerManager -GWT 1.6或更高版本实现)在GWT中发送和订阅事件。 因此,从地理编码服务获取结果后,您可以发送带有结果的事件。 期望结果的模块通过EventBus预订此事件。

您可能想查看gwt-presentergwt-dispatch应用程序以获得实现和示例。

我已经解决了使用计时器和5000毫秒时间表的问题。

我不执行GWT,因此无法深入了解,但毕竟,您看起来(或正在)使用单独的线程进行处理。 如果这是真的,那么您基本上需要(让它) join线程,然后再对其最终结果进行处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM