将 MyMaps 地图添加到 Android 片段

Add MyMaps map to an Android Fragment

我目前正在做一个项目,我需要将 Google 我的地图 地图添加到一个片段,但我已经搜索了一段时间,我一直没能找到介绍 URL 的方法。我的猜测是它应该是 GoogleMap class 中某处的方法。 此外,我注意到有一些方法(如 addPolygon)可以帮助实现与 MyMaps 地图类似的结果。然而,这将是一个非常混乱的方法,因为我必须添加许多坐标,而且它会变得非常耗时。

谢谢!

我不确定不保存 KML 文件并在 Fragment 中显示的过程。

But by manually downloading the file as shown below , we can include the same in Fragment.


现在在 res 文件夹中创建文件夹 raw

将下载的 KML 文件粘贴到 raw 文件夹中。

更新 google 地图的依赖关系,如图所示。

api 'com.google.maps.android:android-maps-utils:0.5'

在您的片段中执行以下操作。

KmlLayer kmlFile;

public void onMapReady(GoogleMap googleMap) {
   ...............
   ...............
   try {
            kmlFile = new KmlLayer(googleMap, R.raw.my_map, getContext());
            kmlFile.addLayerToMap();
        } catch (XmlPullParserException e) {
            Log.e(TAG,""+e.toString());
        } catch (IOException e) {
            Log.e(TAG,""+e.toString());
        }
}

我在下面用过显示正常的 google 地图。此地图加载与在 Fragment

中显示地图的常规过程相同
<com.google.android.gms.maps.MapView
                android:id="@+id/placeOrderMap"
                android:layout_width="match_parent"
                android:layout_height="200dp"
>
</com.google.android.gms.maps.MapView>

现在加载片段后,滑动到您创建 Google 我的地图的位置,您可以看到创建的地图图钉/图标等。

根据您创建的元素,输出将如下所示。

我的地图可视化不需要 GoogleMap 对象。只需将 WebView 添加到您的片段并通过共享 URL:

将您的“我的地图”加载到其中
private WebView mMyMapWebView;
...

mMyMapWebView = (WebView) findViewById(R.id.mymap_webview);
mMyMapWebView.getSettings().setJavaScriptEnabled(true);
mMyMapWebView.setWebViewClient(new WebViewClient());
mMyMapWebView.loadUrl(<your_mymap__url_e.g. https://drive.google.com/open?id=...>);

.xml WebView中可以这样描述:

<WebView
    android:id="@+id/mymap_webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></WebView>

共享 URL 为您的“我的地图”,您可以通过按“我的地图”控制面板上的“共享”按钮获取:

并且在 window 上与共享 URL 您还应该将访问权限从私人更改为 "Anyone who has link" 或 public:

然后,在 Android 设备上你会得到类似的东西: