fir*_*rap 8 android google-maps google-maps-android-api-2
我正在努力解决问题,并试图解决它几周,但没有满足我的需求的解决方案.我的问题是我要在我的地图上添加多个标记(> = 6000)并且在所有想法/建议和调查后我仍然存在性能问题,因为在地图上添加标记即使在主线程上也是如此标记它是在后台线程中构造的.
假设及进展情况:
我的代码:
private class MarkerTask extends AsyncTask<Positions, MarkerOptions, Void> {
Projection projection;
@Override
protected void onPreExecute() {
super.onPreExecute();
projection = mMap.getProjection();
}
@Override
protected Void doInBackground(Positions... params) {
List<Vessel> positionsList = new ArrayList<Vessel>(params[0].getList());
LatLngBounds bounds = projection.getVisibleRegion().latLngBounds;
for (int i = 0; i < positionsList.size(); i++) {
if (bounds.contains(locationLatLng) && interval.contains(DateTimeUtc)) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(locationLatLng);
markerOptions.title(name);
markerOptions.rotation(getHeading());
markerOptions.snippet(id);
markerOptions.anchor(Constants.MARKER_ANCHOR_CENTER, Constants.MARKER_ANCHOR_CENTER);
publishProgress(markerOptions);
positionsList.remove(i);
if (isCancelled())
break;
}
}
return null;
}
@Override
protected void onProgressUpdate(MarkerOptions... values) {
mMap.addMarker(values[0]);
mMap.setOnMarkerClickListener(onMarkerClick());
}
Run Code Online (Sandbox Code Playgroud)
任何建议如何提高性能?
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |