将MyMaps地图添加到Android片段

时间:2018-06-27 07:20:05

标签: android google-maps android-fragments mymaps

我目前正在一个项目中,需要将Google 我的地图地图添加到片段中,但是我已经搜索了一段时间,但无法进行找到一种介绍URL的方法。我的猜测是它应该是GoogleMap类中某个位置的方法。 另外,我注意到有些方法像addPolygon可以帮助实现与MyMaps地图相似的结果。但是,这将是一个非常麻烦的方法,因为我必须添加许多坐标,这将变得非常耗时。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

  

但是通过如下所示手动下载文件,我们可以包括   片段中也是如此。


enter image description here

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

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

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

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我的地图的位置,即可看到创建的地图图钉/图标等。

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

enter image description here

答案 1 :(得分:1)

“我的地图”可视化不需要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>

可以通过按“我的地图”控制面板上的“共享”按钮来获取“我的地图”的共享网址:

My Maps Main view

并在带有共享URL的窗口中,您还应该将访问权限从私有更改为“具有链接的任何人”或公共:

My Maps Sharing settings

然后,在Android设备上您将获得类似的内容:

My Maps on Android device