Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события

Обсуждение уроков
Sokolking
Сообщения: 2
Зарегистрирован: 21 апр 2015, 10:12

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Sokolking » 21 апр 2015, 10:14

Господа, делаю все, как сказано в уроке, но программа останавливается на этапе включения.
Помогите.

Аватара пользователя
Foenix
Сообщения: 4200
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Foenix » 21 апр 2015, 10:28

смотри логи.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

gagarinn
Сообщения: 12
Зарегистрирован: 09 янв 2012, 13:55
Откуда: Харьков

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение gagarinn » 21 апр 2015, 10:46

Что-то не спешит никто делиться. Нашел такую штуку https://github.com/MKergall/osmbonuspack разбираюсь, может пригодится кому. Уже спрашивали в этой теме. К сожалению в описании написано, что можно закачивать только 5 зумов. Посмотрим как оно там

Sokolking
Сообщения: 2
Зарегистрирован: 21 апр 2015, 10:12

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Sokolking » 21 апр 2015, 11:33

а еще вопрос.
Мне нужно на карту наложить изображение( в конкретном участке на карте наложить jpeg изображение(которое из себя само представляет карту) а так же включить геолокацию, и все это должно быть оффлайн) как это лучше сделать?

danek130995
Сообщения: 42
Зарегистрирован: 25 янв 2015, 18:57

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение danek130995 » 18 ноя 2015, 14:03

На планшете запускается, а на телефоне mapFragment.getMap() возвращает null. Почему он может возвращать null и где вообще нужно вызывать метод isGooglePlayServicesAvailable()? Я пробовал вызывать, но везде он подсвечивается красным, т.е. неизвестен
Последний раз редактировалось danek130995 18 ноя 2015, 14:07, всего редактировалось 1 раз.

danek130995
Сообщения: 42
Зарегистрирован: 25 янв 2015, 18:57

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение danek130995 » 18 ноя 2015, 14:05

pka писал(а):
FastRus1804 писал(а):А как настроить Google Play services в Android Studio?
Для запуска и настройки урока #139 на Android Studio нужно:
=> Зайти в браузере на свой акаунт на сайте Google APIs Console https://code.google.com/apis/console/?noredirect, на вкладке Services включить тумблер Google Maps Android API v2
=> Создаем пустой проект с нужными нам именем, blank/HelloWorld activity.
=> В Android Studio на открытой вкладке проекта (область слева) щёлкнуть ПКМ по структуре проекта и выбрать
"New" -> "Google" -> "Google Map Activity"
=> Система сгенерирует некоторые файлы и зависимости а вам откроется файл res/values/google_maps_api.xml
=> Внимательно его изучаем. В нем есть значение ключа SHA1, а также ссылка для перехода на сайт google для получения google_maps_key.
=> Копируем ссылку перехода и вставляем в адресную строку браузера для перехода на страницу генерирования ключа средствами google
=>Разбираемся с интерфейсом, нажимаем "generate" или как-то так
=> Сгенерированный на сайте гугла ключ вставляем сюда же (res/values/google_maps_api.xml) в значение строковой переменной google_maps_key:
<string name="google_maps_key" templateMergeStrategy="preserve">*************-********-****************</string>
=> Рекомендуют создать googleplay классы (хотя карта и без них работает): В Android Studio на открытой вкладке проекта щёлкнуть ПКМ по структуре проекта и выбрать
"New" -> "Google" -> "Google Play Services Activity"
(полагаю, в SDK менеджере уже должны быть скачаны Google Play services)
=> Редактировать файл манифеста не нужно, строки googleplayservices и права доступа добавятся сами. (Чудеса!)
=>далее - по тексту урока: копируем текст layout-а, вставляем в layout; текст main-activity.java - в main-activity.java...
pka,спасибо, Вы очень помогли!

AphinaShi
Сообщения: 1
Зарегистрирован: 12 фев 2016, 21:44

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение AphinaShi » 12 фев 2016, 21:48

Не запускается на устройстве: ни в режиме реального времени, ни если собрать апк и скинуть его на телефон. Ошибок в логах я не вижу(может не туда смотрю), выходит сообщение Build APK APK(s) generated successfully.Приложение запускается на мгновение белый экран и пропадает. Сообщения об ошибке нет. Находила вариант, что связано с версией сдк: на телефоне версия 4.1.1. API 16, в файле buld grandle минимальная версия сдк и таргет версия стоит 16. Что ещё можно сделать?

GRAF_COLLIOSTRO
Сообщения: 115
Зарегистрирован: 08 янв 2015, 14:32

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение GRAF_COLLIOSTRO » 16 фев 2016, 12:18

ктонить пробовал подгружать другие кары? яндекс, например? как это делается?

Etwas
Сообщения: 1
Зарегистрирован: 16 июл 2016, 15:49

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение Etwas » 16 июл 2016, 15:59

Всем привет! Есть серьёзная для меня проблема, решить которую я не могу уже в течение нескольких недель! Фрагмент (вложенный в другой фрагмент) с картой при повороте экрана вылетает. После разбора стало ясно, что onCreateView вызывается два раза подряд, причём первый раз (после поворота) с savedInstanceState!=null, а во второй раз savedInstanceState==null. Карта вставляется динамически. Не уверен какая информация ещё может понадобиться, потому ограничился пока общим описанием.

P.S. Вылетает с такой ошибкой: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.moebius.bourse/com.moebius.bourse.activities.Main}: java.lang.IllegalArgumentException: No view found for id 0x7f0b006c (com.moebius.bourse:id/GoogleMap) for fragment SupportMapFragment{42373ee0 #2 id=0x7f0b006c}

Аватара пользователя
tnt2ultra
Сообщения: 2
Зарегистрирован: 26 мар 2016, 13:11
Откуда: Балашиха
Контактная информация:

Re: Урок 139. Google maps. Создание и настройка проекта. Кар

Сообщение tnt2ultra » 19 дек 2018, 17:14

Привет!
Разбираясь с картами Гугла, обнаружил, что код примера устарел.
Вот исправленная версия:
MainActivity.java

Код: Выделить всё

package ru.startandroid.develop.p1391googlemaps;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends FragmentActivity implements OnMapReadyCallback {

    SupportMapFragment mapFragment;
    private GoogleMap mMap;
    final String TAG = "myLogs";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        init();
    }

    private void init() {
        Log.d(TAG,"Init");
    }

    public void onClickTest(View view) {
        mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}
activity_main.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <Button
        android:id="@+id/btnTest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickTest"
        android:text="@string/test">
    </Button>
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </fragment>
</LinearLayout>
AndroidManifest.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest package="ru.startandroid.develop.p1391googlemaps"
          xmlns:android="http://schemas.android.com/apk/res/android">

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key">
    </meta-data>
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version">
    </meta-data>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true">
    </uses-feature>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!--
             The API key for Google Maps-based APIs is defined as a string resource.
             (See the file "res/values/google_maps_api.xml").
             Note that the API key is linked to the encryption key used to sign the APK.
             You need a different API key for each encryption key, including the release key that is used to
             sign the APK for publishing.
             You can define the keys for the debug and release targets in src/debug/ and src/release/. 
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key"/>

    </application>

</manifest>
И в файле \res\values\google_maps_api.xml нужно прописать свой google_maps_key.

Ответить