Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为地图标记生成带有自定义文本的位图-OutOfMemoryError_Java_Android_Google Maps_Bitmap_Markers - Fatal编程技术网

Java 为地图标记生成带有自定义文本的位图-OutOfMemoryError

Java 为地图标记生成带有自定义文本的位图-OutOfMemoryError,java,android,google-maps,bitmap,markers,Java,Android,Google Maps,Bitmap,Markers,我有一个地图视图,可以显示你在汽车中行驶的路线,还有一个搜索杆,可以让你沿着路径移动,在每个位置显示一个地图标记,上面有速度。这些贴图标记(位图)是在运行时生成的,因为需要在其上放置速度。我遇到的问题是,一次旅行可能有数百个位置需要生成新的地图标记/位图。我目前正在为异步任务中的每个位置创建一个新位图。对于长途旅行,由于OutOfMemory错误,应用程序强制关闭。我需要一种方法来交换出地图上的文字标记,以便我可以创建一个位图。 非常感谢您提供的任何帮助/建议。在移动开发方面,Bipmaps始终

我有一个地图视图,可以显示你在汽车中行驶的路线,还有一个搜索杆,可以让你沿着路径移动,在每个位置显示一个地图标记,上面有速度。这些贴图标记(位图)是在运行时生成的,因为需要在其上放置速度。我遇到的问题是,一次旅行可能有数百个位置需要生成新的地图标记/位图。我目前正在为异步任务中的每个位置创建一个新位图。对于长途旅行,由于OutOfMemory错误,应用程序强制关闭。我需要一种方法来交换出地图上的文字标记,以便我可以创建一个位图。
非常感谢您提供的任何帮助/建议。

在移动开发方面,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
}

希望这有帮助

显示一些代码将更容易帮助您