在Google地图上重绘折线

时间:2015-07-26 15:19:02

标签: android google-maps 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);

在使用以下内容绘制新的Polyline之前,将从地图中删除最后一条Polyline:

        PredictionLine.remove();

这很有效,但只有一段时间。过了一会儿,我收到了消息:

com.google.process.gapps进程已停止。行?

我可以点击“确定”,应用程序可以正常工作,但也只能在有限的时间内完成。然后突然整个应用程序崩溃了。查看日志将返回以下内容:

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

只要删除上面提到的代码行,应用程序就可以正常运行而没有任何其他问题。 想法,如果谷歌地图遇到问题,在折线上进行重绘?

2 个答案:

答案 0 :(得分:1)

您不应删除并添加新的折线,只需更改其参数即可! 您可以更改折线的点,宽度,颜色等,只需保留对它的引用!

  

setColor(int color)

     

setGeodesic(boolean geodesic)

     

setPoints(列表点)

     

setVisible(boolean visible)

     

setWidth(float width)

     

setZIndex(float zIndex)

https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polyline

表演会更轻松,更好!

答案 1 :(得分:0)

您需要删除对类和对象的全局引用。