Добавить карту MyMaps во фрагмент Android

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

Спасибо!

2
0
216
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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


Теперь создайте папку 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 Мои карты, и вы увидите созданный значок / значок карты и т. д.

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

Здравствуйте, ваш метод работает нормально при экспорте в KML. Если вместо этого я использую версию KMZ, чтобы сохранить значки, я получаю сообщение об ошибке от XmlParser: org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position: TEXT @ 1: 213 in java.io.InputStreamReader@df5ffa7 ). Если я извлекаю KML из сгенерированного KMZ, он работает, но, конечно, без изображений значков. Есть идеи, нужно ли мне использовать что-то особенное для kmz?

eOf 27.06.2018 18:45

Я понятия не имею об этих строках. Вероятно, вы можете опубликовать этот конкретный вопрос в другой ветке. Как более конкретный, чем ваш вопрос Добавить карту MyMaps во фрагмент Android

Sreehari 28.06.2018 09:15

Вам не нужен объект 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=...>);

в .xmlWebView можно описать так:

<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

Другие вопросы по теме