android – Mapview getLatitudeSpan和getLongitudeSpan无效

android – Mapview getLatitudeSpan和getLongitudeSpan无效,第1张

概述有时,当尝试使用getLatitudeSpan()和getLongitudeSpan()获取mapview的纬度范围或经度范围时,我分别获得0和360 * 1E6.这不会永远发生,但这是一个问题,有人有这个问题吗?任何解决方法?我也尝试使用getProjection(),但我遇到了同样的问题.这是一段代码: MapView mapView = (MapView) findViewById(R.id 有时,当尝试使用getLatitudeSpan()和getLongitudeSpan()获取mapvIEw的纬度范围或经度范围时,我分别获得0和360 * 1E6.这不会永远发生,但这是一个问题,有人有这个问题吗?任何解决方法?我也尝试使用getProjection(),但我遇到了同样的问题.这是一段代码:
MapVIEw mapVIEw = (MapVIEw) findVIEwByID(R.ID.mapvIEw);int lat = mapVIEw.getLatitudeSpan(); // sometimes returns 0int long = mapVIEw.getLongitudeSpan(); // sometimes returns 360*1E6
解决方法 我会检测到这种情况并安排你的工作在几百毫秒后再试一次. AFAIK,这些值最终会变得可用,但它们可能与时间相关.理论上,它们应该在您设置中心并设置缩放后进行计算,但我怀疑它们在MapVIEw渲染之后才真正计算,并且可能直到下载了一些来自Internet的地图数据.

因此,将依赖于这些跨度的代码隔离到方法中.从onCreate()和AsyncTask调用该方法,可能正如您今天所做的那样.但是,添加检测逻辑以查找无效值,然后在MapVIEw(或其他一些VIEw)上调用postDelayed(),以便在几百毫秒后再次调用您的方法(如果值无效).你可能还需要添加一些计数器,这样你就不会无限期地执行这个postDelayed()的东西.

当然,这是一个黑客攻击.但是,由于谷歌地图组件不是开源的,因此很难找到更稳固的东西.

总结

以上是内存溢出为你收集整理的android – Mapview getLatitudeSpan和getLongitudeSpan无效全部内容,希望文章能够帮你解决android – Mapview getLatitudeSpan和getLongitudeSpan无效所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存