我有一种情况,我需要告诉用户附近的 ATM 机在哪里。问题是如果银行有 10000 台 ATM。
当我使用地图进行网络编程时,我通常只在可见区域加载 ATM。当用户进行平移或缩小时,我请求后端服务器提供更多的 ATM 并重新绘制所有覆盖项。但我认为我们不能在移动设备上使用这种技术。
如果我使用https://developers.google.com/maps/documentation/android/hello-mapview的技术,我会受到性能影响。
处理这个问题的最佳方法是什么?我们知道有一些担忧:
- 加载所有 ATM 会消耗大量内存。
- 当用户进行平移时,在可见区域加载 ATM 可能会占用大量数据连接。(我也不知道如何获得可见的坐标边框)
我做了一些实验。加载 1000 个覆盖项目 (ATM) (1000 x itemizedOverlay.addOverlayItem(anAtm); 和 1 x populate()) 花费了 5 秒。
这样做有什么最佳做法吗?我真的希望谷歌能给开发者最好的实践。
谢谢