我有一个地图视图,显示您在汽车中行驶的路线,并有一个搜索栏,允许您沿着路径移动,在每个位置以速度显示地图标记。这些地图标记(位图)是在运行时生成的,因为需要在它们上放置速度。我遇到的问题是,旅行可能有数百个位置需要生成新的地图标记/位图。我目前正在为AsyncTask中的每个位置创建一个新的位图。对于长途旅行,应用程序因OutOfMemoryError而关闭。我需要一种方法来交换地图标记上的文本,以便我可以创建1个位图。 非常感谢任何帮助/建议。
答案 0 :(得分:0)
在移动开发方面,Bipmaps总是一项昂贵的操作。我建议你有一个延迟加载标记(位图)。因此,您可以做的是首先知道可见区域和与其对应的边界,并仅在地图在该区域中滚动时获取标记。这不会在运行时消耗大量内存,只在需要时才会获取位图。
以下是示例代码:
GoogleMap = theMap;
LatLngBounds bounds = this.theMap.getProjection().getVisibleRegion().latLngBounds;
LatLng placeLL = new LatLng(yourLatitude, yourLangtitude);
if (bounds.contains(placeLL)) {
//Do what you wanted to do with the markers inside the visible area
}
希望这有助于!!