在 Google 地图上重新绘制多段线
Redrawing polylines on Google maps
我有一个应用程序,对折线进行大量重绘(每秒约 4 次重绘)。
绘制折线的代码:
plo = new PolylineOptions().geodesic(true)
.color(Color.WHITE)
.width(4f)
.zIndex(0);
plo.add(lineVector.position);
plo.add(SphericalUtil.computeOffset(lineVector.position, 1000,lineVector.bearing));
PredictionLine = mMap.addPolyline(plo);
在绘制新折线之前从地图中删除最后一条折线:
PredictionLine.remove();
这非常有效,但只能持续一段时间。过了一会儿,我收到消息:
进程 com.google.process.gapps 已停止。好吗?
我可以单击“确定”,应用程序再次正常运行,但时间有限。然后突然整个应用程序崩溃。查看日志 returns 如下:
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] JNI ERROR (app bug): global reference table overflow (max=51200)
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] global reference table dump:
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] Last 10 entries (of 51200):
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51199: 0x356051e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51198: 0x356051a0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51197: 0x35605160 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51196: 0x35605120 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51195: 0x356050e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51194: 0x353c38a0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51193: 0x353c31e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51192: 0x353c1120 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51191: 0x353b7de0 com.google.android.gms.clearcut.a.h
只要我删除上面提到的代码行,应用程序就可以正常运行,没有任何其他问题。
还有想法,如果 google 地图 运行 在多段线上重绘时出现问题?
您需要删除对 类 和对象的全局引用。
您不应该删除和添加新的多段线,而只是更改其参数!
您可以更改多段线的点、宽度、颜色等,只需保留对它的引用即可!
setColor(int color)
setGeodesic(boolean geodesic)
setPoints(List points)
setVisible(boolean visible)
setWidth(float width)
setZIndex(float zIndex)
https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline
表演会更轻松更好!
我有一个应用程序,对折线进行大量重绘(每秒约 4 次重绘)。 绘制折线的代码:
plo = new PolylineOptions().geodesic(true)
.color(Color.WHITE)
.width(4f)
.zIndex(0);
plo.add(lineVector.position);
plo.add(SphericalUtil.computeOffset(lineVector.position, 1000,lineVector.bearing));
PredictionLine = mMap.addPolyline(plo);
在绘制新折线之前从地图中删除最后一条折线:
PredictionLine.remove();
这非常有效,但只能持续一段时间。过了一会儿,我收到消息:
进程 com.google.process.gapps 已停止。好吗?
我可以单击“确定”,应用程序再次正常运行,但时间有限。然后突然整个应用程序崩溃。查看日志 returns 如下:
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] JNI ERROR (app bug): global reference table overflow (max=51200)
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] global reference table dump:
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] Last 10 entries (of 51200):
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51199: 0x356051e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51198: 0x356051a0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51197: 0x35605160 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51196: 0x35605120 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51195: 0x356050e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51194: 0x353c38a0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51193: 0x353c31e0 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51192: 0x353c1120 com.google.android.gms.clearcut.a.h
07-23 10:41:32.838 12180-6237/app.skynavigator.android.skynavigator A/art﹕ art/runtime/indirect_reference_table.cc:98] 51191: 0x353b7de0 com.google.android.gms.clearcut.a.h
只要我删除上面提到的代码行,应用程序就可以正常运行,没有任何其他问题。 还有想法,如果 google 地图 运行 在多段线上重绘时出现问题?
您需要删除对 类 和对象的全局引用。
您不应该删除和添加新的多段线,而只是更改其参数! 您可以更改多段线的点、宽度、颜色等,只需保留对它的引用即可!
setColor(int color)
setGeodesic(boolean geodesic)
setPoints(List points)
setVisible(boolean visible)
setWidth(float width)
setZIndex(float zIndex)
https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline
表演会更轻松更好!