【问题标题】:Performance issue when drawing Polygones on Api Map V2 Android在 Api Map V2 Android 上绘制多边形时的性能问题
【发布时间】:2013-03-12 15:04:57
【问题描述】:

当我尝试在 android 上显示大量多边形时,地图非常慢

以下代码在 GoogleMap 上显示大约 1000 个多边形。

List<LatLng> list = new ArrayList<LatLng>();
for (int i = 0; i < 33; i++) {
        for (int j = 0; j < 33; j++) {
            list.add(new LatLng(46.961511 + (0.001 * i), 4.866943+ (0.001 * j)));
            list.add(new LatLng(46.961511 + (0.001 * i) + 0.001, 4.866943 + (0.001 * j)));          
            list.add(new LatLng(46.961511 + (0.001 * i)+ 0.001, 4.866943+ 0.001+ (0.001 * j)));         
            list.add(new LatLng(46.961511 + (0.001 * i), 4.866943+ 0.001+ (0.001 * j)));
            addPolygoneToMap(list);
            list.clear();
        }
 }
 private void addPolygoneToMap (List<LatLng> latLngList) {
        mMap.addPolygon(new PolygonOptions()
                .addAll(latLngList)
                .fillColor(Color.BLUE)
                .strokeColor(Color.RED)
                .strokeWidth(3));
 }

在 ApiMapV1 上,我显示了超过 2 000 个多边形叠加层。

问题不是创建多边形,而是在地图上滚动。

我该如何解决这个问题?我做错了什么以及如何优化它?

【问题讨论】:

    标签: android api google-maps optimization polygon


    【解决方案1】:

    已编辑:我搞砸了,并没有意识到 Android 版 Google 地图不允许您制作自定义地图,就像使用 Google 网页版地图一样。

    Google 地图无法处理可能的多边形。您可以使用 Google Maps for Web 解决此问题,但从实际的角度来看,要显示许多多边形,您需要生成图块。因此,您需要将您的应用程序重做为网页而不是本机应用程序。

    有很多关于如何使用自定义地图图块制作地图的资料。见

    我还有一篇关于如何提高图块渲染速度的博客文章,stackoverflow 不允许我发布另一个链接。搜索 sherwood 优化地图瓦片生成

    祝你好运!

    【讨论】:

    • 你给我的所有链接都与Javascript有关。我在android上有这个问题。 android上有TilesOverlays,但看起来这不是我需要的。瓷砖是您放置在地图上 x,y 位置的图像。但我需要边框的颜色,中心是可变的,宽度和高度也是可变的。如果我错了,请告诉我,但瓷砖不可能?
    • 我好尴尬。你说的对。我假设 android 的地图与 web 的地图具有基本相同的功能。我刚刚查看了 Android API,不,它不允许您使用自己的图块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多