java - Android Google Maps v2 多边形性能问题?

标签 java android google-maps google-maps-api-2

我正在使用 Google maps v2我正在构建的 Android 应用程序的 api,它必须在 map 上绘制多边形。当多边形数量较少时,一切正常,当数量较多时, map 加载缓慢,平移和缩放非常慢。我正在使用 SupportMapFragment 并像这样添加多边形:

    for(PolygonOptions item : items) { 
            getMap().addPolygon(poly);
    }

有什么方法可以提高大量多边形的性能吗?

最佳答案

我还想在背景 map 上绘制很多多边形,因为加载和组装顶点需要时间。对我有用的解决方案是在 AsyncTask 中加载数据,然后将每个多边形的点传递给 onProgressUpdate 方法中的主 UI 中的方法。

private class AddZonesTask extends AsyncTask<Zone, Zone, Integer> {
  protected Integer doInBackground(Zone... zones) {
    for (Zone zone : zones) {
      Cursor cursor = provider.query( .... );
      List<Points> points = cursorToPointsMethod(cursor);
      zone.add(points);
      publishProgress(zone);
    }
  return zones.length;
  }

  protected void onProgressUpdate(Zone... zones) {
    drawBorder(zones[0]);
  }

  protected void onPostExecute(Integer result) { }
}

然后在主 UI 中的 drawBorder 将它们添加到 map 对象。

关于java - Android Google Maps v2 多边形性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469122/

相关文章:

android - 在多层android google maps中传播事件

ios - 如何使用 Google autocomplete place api ios sdk 获得特定国家/地区的结果?

java - 运行 "hbase shell"在 OSX 中给出错误

java - Java 中的 Project Euler #17(落后 7)

java - 无法启动 Activity ComponentInfo{MainFrag} : java. lang.NullPointerException

android - 以某种方式创建了大量 hprof 文件,阻止我推送

java - 使用 Cassandra InstantCodec

java - 从 NDK 读取 Settings.Secure -decodeIndirectRef 中的间接引用无效

android - 如何旋转 Sprite 并 move

java - android.view.InflateException : Binary XML file line #12: Error inflating class fragment