我的应用遇到了问题。出现的第一个屏幕是显示基于从我们的服务器加载的XML文件定位的引脚的映射。
有时应用会按预期加载。其他时候,地图会加载但在您触摸屏幕之前不会显示任何引脚。
为什么会出现这种情况以及可以采取哪些措施来解决问题?
答案 0 :(得分:6)
有时应用会按预期加载。其他时候,地图加载但在您触摸屏幕之前不会显示任何引脚。
如果我不得不猜测,这是时间问题 - 有时,你的服务器响应速度足够快,以至于引脚在初始地图渲染中被拾取,有时则不然。我不知道你是如何实现服务器获取和pin-popluation的,但是在你的引脚准备就绪之后,在你的populate()
上调用ItemizedOverlay
(假设你正在使用它),然后在需要时调用invalidate()
上的MapView
。
答案 1 :(得分:2)
我的一个项目中遇到了类似的问题。 Overlay会在我的测试手机(三星G5)上正确绘制,但是在模拟器上,覆盖层只会在我的动作之后出现(如屏幕触摸)。我后来在Nexus One上测试了同一个项目,然后在模拟器上行为相同。
一旦按照CommonsWare的说明填充Overlay,我现在通过调用mapview上的invalidate()
强制重绘MapView。
答案 2 :(得分:1)
地图上有多少针? 如果有很多引脚,那么在引脚准备就绪后只使用一次,否则需要时间 每个populate语句都需要花费很多时间,所以只使用一次填充
答案 3 :(得分:0)
解决此问题的另一种方法是添加Google Map.OnMapLoaded CallBack()来初始化您的显示。然后时间问题完全消失了。