Osmdroid,自定义覆盖图
Osmdroid, Custom Overlay Drawing
对于 Android 应用程序,我在这里创建了一个自定义叠加层,以在地图上显示各种游戏数据项。
总的来说,覆盖效果很好,很流畅!
但是,有一个几何星座未按预期工作:叠加层中的某些对象未绑定到地理坐标,而是绑定到当前用户位置。现在,Osmdroid 正在选择性地重绘屏幕。当屏幕未聚焦到用户位置时,用户位置绑定的内容未正确更新:新内容仅在某些选定矩形中绘制,旧内容未在该矩形外删除。
到目前为止,我没能找到一种机制来将所需的叠加层重绘传达给基本的 Osmdroid 系统? IE。使当前用户位置的周围环境无效?任何提示、线索或指针?
通过研究示例代码,我意识到他们确实认为覆盖层有责任对地图组件发出适当的无效调用以确保其自身的光学完整性。
我仍然在努力处理坐标以进行正确的 invalidate(left, top, right, buttom)
调用,因为我的更新实际上是在位置发生变化时发生的,我不清楚是否需要测量要失效的地图的屏幕像素相对于旧位置或新位置。这其实是一个时间问题。
然而,采用 CPU 字节并发出 postInvalidate()
只是看起来符合预期,并不清楚实际损失了多少性能。
对于 Android 应用程序,我在这里创建了一个自定义叠加层,以在地图上显示各种游戏数据项。
总的来说,覆盖效果很好,很流畅!
但是,有一个几何星座未按预期工作:叠加层中的某些对象未绑定到地理坐标,而是绑定到当前用户位置。现在,Osmdroid 正在选择性地重绘屏幕。当屏幕未聚焦到用户位置时,用户位置绑定的内容未正确更新:新内容仅在某些选定矩形中绘制,旧内容未在该矩形外删除。
到目前为止,我没能找到一种机制来将所需的叠加层重绘传达给基本的 Osmdroid 系统? IE。使当前用户位置的周围环境无效?任何提示、线索或指针?
通过研究示例代码,我意识到他们确实认为覆盖层有责任对地图组件发出适当的无效调用以确保其自身的光学完整性。
我仍然在努力处理坐标以进行正确的 invalidate(left, top, right, buttom)
调用,因为我的更新实际上是在位置发生变化时发生的,我不清楚是否需要测量要失效的地图的屏幕像素相对于旧位置或新位置。这其实是一个时间问题。
然而,采用 CPU 字节并发出 postInvalidate()
只是看起来符合预期,并不清楚实际损失了多少性能。