代码之家  ›  专栏  ›  技术社区  ›  javaxian

没有在线初始化,地图Android API无法脱机工作

  •  1
  • javaxian  · 技术社区  · 7 年前

    因为我的碎片包含 com.google.android.gms.maps.MapView

    如何初始化Android Map framework,以便在没有连接的情况下可以使用地图?有没有办法跳过在线密钥验证?

    2 回复  |  直到 7 年前
        1
  •  1
  •   javaxian    7 年前

    经过一些实验,我找到了一个简单的解决方案。

    因此,首先,在我的第一个活动布局中(这是我所有片段的宿主活动),我添加了以下零大小的不可见项 MapView

    <com.google.android.gms.maps.MapView
        android:id="@+id/dummyMapViewToInitForOfflineUse"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:visibility="invisible"
        />
    

    然后,在活动代码中,我添加了以下方法:

    private void initGoogleMapFrameworkToMakeItUsableOfflineLater() {
        dummyMapViewToInitForOfflineUse.onCreate(new Bundle());
        dummyMapViewToInitForOfflineUse.getMapAsync(ignored -> {
            Timber.d("GoogleMap framework initialized and ready to use offline later");
        });
    }
    

    你可以叫它进来 onCreate 以及在任何其他合理的时刻(我使用AndroidAnnotations,所以我从用注释的init方法调用它) @AfterViews ). 显然,如果不使用AndroidAnnotations或其他视图绑定框架,则需要执行 findViewById(R.id.dummyMapViewToInitForOfflineUse)

        2
  •  0
  •   Gordon developer    7 年前

    如果您的目标是缓存谷歌地图的互动程序以供脱机使用,那么您可能违反了他们的条款,您首先需要购买他们的企业地图API Premier,请查看此链接 How to cache Google map tiles for offline usage?