小编kha*_*hai的帖子

如何高效地在谷歌地图中绘制多条折线?

我目前正在学习制作一个使用 Google 地图向用户显示数据的 android 应用程序。目前我正在使用折线绘制出我想在地图上显示的所有“数据/线”,但我直接在谷歌地图上绘制,如 mMap.addPolyline(...)。(我希望我可以发布屏幕截图,但我没有至少 10 个声望 :-( )。

但是我在地图上绘制所有这些线时遇到了一些性能问题,因为它们在那里的一个小区域中由 500 ~ 900 条线组成(通过放大)。问题是当应用程序绘制所有这些数据时,应用程序挂起/停止一秒钟,就像冻结一样,然后一旦完成绘制,应用程序就会继续工作。

所以我的问题是,如何在不让应用程序在地图上绘制时挂起/停止一秒钟的情况下平滑地绘制那么多折线?例如用户可以在地图上绘制折线时在地图上移动吗?

我曾尝试在不同的线程中在地图上绘制折线,但出现了一个错误,例如必须在主线程上绘制(不记得确切的异常错误)。除此之外,我还通过互联网搜索了这样的例子,但我只找到了 Overlay 或 ItemizedOverlay 东西的例子,但据我所知,这些都被弃用了。有没有其他选择可以做到这一点?你能告诉我一些例子或指导我找到正确的资源吗?给我看一些代码会很有帮助。

谢谢

更新: 忘记在此处包含我的代码,这是我绘制折线的代码:

private class LoadDataTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        // Show a message saying this app is fetching data
        Toast.makeText(mMainActivity,
                "Fetching data ...",
                Toast.LENGTH_SHORT)
                .show();
    }

    @Override
    protected Void doInBackground(String... urls) {
        // Load then read the data from a url in the background
        loadData();

        readData();

        return null;
    }

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android google-maps

7
推荐指数
1
解决办法
3233
查看次数

标签 统计

android ×1

google-maps ×1