Добавить карту MyMaps в фрагмент Android - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время я работаю над проектом, в котором мне нужно добавить карту Google Мои карты к фрагменту, но я уже некоторое время искал и не смог найти способ представить URL. Я предполагаю, что это должен быть метод где-то в классе GoogleMap. Кроме того, я заметил, что есть некоторые методы, такие как addPolygon, которые могут помочь достичь результата, аналогичного карте MyMaps. Однако это был бы довольно грязный подход, поскольку мне пришлось бы добавить много координат, и это заняло бы очень много времени.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вам не нужен 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-адресами для моей карты «Моя карта» можно получить, нажав кнопку «Поделиться» на панели управления «Мои карты»:

My Maps Main view

и в окне с общим URL вы также должны изменить права доступа с частного на «Любой, у кого есть ссылка» или общедоступный:

My Maps Sharing settings

и чем, на устройстве Android вы получите что-то вроде этого:

My Maps on Android device

0 голосов
/ 27 июня 2018

Я не уверен насчет процесса не сохранения файла KML и отображения в Fragment.

Но, загрузив файл вручную, как показано ниже, мы можем включить то же самое во фрагменте.


enter image description here

Теперь создайте папку raw внутри папки res.

Вставьте скачанный файл 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. Эта загрузка карты является обычной процедурой для показа карты во фрагменте

<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 My Maps, и вы сможете увидеть созданную карту Pin / Icon и т. Д.

Вывод будет таким, как показано ниже в соответствии с вашими созданными элементами.

enter image description here

...