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

Обсуждение уроков
Аватара пользователя
K0bZ0ne
Сообщения: 1
Зарегистрирован: 11 май 2014, 15:17

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

Сообщение K0bZ0ne » 11 май 2014, 15:19

На девайсе стоит русский язык, соответственно все названия на картах идут на русском языке . Не подскажите, как сделать, чтобы в google maps различные названия отображались на английском языке. Заранее спасибо.

Persik
Сообщения: 19
Зарегистрирован: 15 май 2014, 08:55

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

Сообщение Persik » 15 май 2014, 12:47

Добрый день. Я скачала ваш проект урок 139 Google maps. Создание и настройка проекта. Карта, камера, события и решила проверить открывает ли карты. Но к сожалению не открывает карта. Есть свои проект, но почему-то выдает ошибка "Unfortunately, Google Play services has stopped." и Play store долго загружает, потом ошибка. Все перепробовала, установила кот. вы поместили http://stackoverflow.com/questions/1369 ... 2#13869332. Чего то не делала. Подскажите мне, пожалуйста. Заранее спасибо
Вложения
Мой проект  2.png
Мой проект 2.png (56.48 КБ) 11478 просмотров
Мой проект 1.png
Мой проект 1.png (63.3 КБ) 11478 просмотров
Ваш проект урок 139.png
Ваш проект урок 139.png (108.77 КБ) 11478 просмотров

Donart
Сообщения: 114
Зарегистрирован: 06 ноя 2013, 08:59

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

Сообщение Donart » 15 май 2014, 15:18

Persik писал(а): Подскажите мне, пожалуйста.
Установлен, обновлен Google Play Services? Удалите и установите заново. Ключ правильно создали? Цитата из урока
У меня при первом запуске карта была не видна, но были видны кнопки управления масштабом. В логах был такой текст: Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors). В этом случае убедитесь, что все верно сделано с получением ключа. Если проблема остается, то удалите приложение с устройства, сделайте в Eclipse очистку проекта (меню Project > Clean) и снова установите приложение - мне помогло.
Дабы повысить шанс что Вам помогут, выкладывайте свой код и логи сюда, по скринам это делать довольно проблематично ;)

Persik
Сообщения: 19
Зарегистрирован: 15 май 2014, 08:55

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

Сообщение Persik » 16 май 2014, 09:25

[quote="Donart"]Установлен, обновлен Google Play Services? Удалите и установите заново. Ключ правильно создали? Цитата из урока[/quote]

Да, установлен и обновлен Google Play Services. Я 10 раз удалила и установила. Ключ правильно написала. Незнаю, почему не показывает эмулятор.

[b]fragment_map.xml[/b]
[code]<?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>[/code]

[b]MapFragment.java[/b]
[code]package kz.metroalmaty.metroapp;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnCameraChangeListener;
import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;

public class MapFragment extends Fragment {

SupportMapFragment mapFragment;
GoogleMap map;
final String TAG = "myLogs";

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_map, container, false);
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_map);

mapFragment = (SupportMapFragment) getFragmentManager()
.findFragmentById(R.id.map);
map = mapFragment.getMap();
if (map == null) {
finish();
return v;
}
init();
return v;
}

private void finish() {
// TODO Auto-generated method stub

}

private void init() {
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
Log.d(TAG, "onMapClick: " + latLng.latitude + "," + latLng.longitude);
}
});

map.setOnMapLongClickListener(new OnMapLongClickListener() {

@Override
public void onMapLongClick(LatLng latLng) {
Log.d(TAG, "onMapLongClick: " + latLng.latitude + "," + latLng.longitude);
}
});

map.setOnCameraChangeListener(new OnCameraChangeListener() {

@Override
public void onCameraChange(CameraPosition camera) {
Log.d(TAG, "onCameraChange: " + camera.target.latitude + "," + camera.target.longitude);
}
});

}


public void onClickTest(View view) {
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(-27, 133))
.zoom(5)
.bearing(45)
.tilt(20)
.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition);
map.animateCamera(cameraUpdate);

}


private void setContentView(int fragmentMap) {
// TODO Auto-generated method stub

}
final MapView mMapView = (MapView) findViewById(R.id.map);
MapController mMapController = mMapView.getMapController();
mMapController.setPositionAnimationTo(new GeoPoint(60.113337, 55.151317));
mMapController.setZoomCurrent(15);
}
[/code]

[b]AndroidManifest.xml[/b]
[code]<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kz.metroalmaty.metroapp"
android:versionCode="1"
android:versionName="1.0" >



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

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


<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />



<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >



<activity
android:name="kz.metroalmaty.metroapp.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".ScheduleAllActivity"
android:label="@string/title_schedule_all"
android:parentActivityName="kz.metroalmaty.metroapp.MainActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value="kz.metroalmaty.metroapp.MainActivity"/>
</activity>
<activity android:name="StationsActivity"></activity>
<activity android:name="Raiyimbek_batirActivity"></activity>
<activity android:name="PaymentActivity"></activity>
<activity android:name="Zhibek_zholiActivity"></activity>
<activity android:name="AlmaliActivity"></activity>
<activity android:name="AbaiaActivity"></activity>
<activity android:name="BaiykonirActivity"></activity>
<activity android:name="AuezovaActivity"></activity>
<activity android:name="AlatayActivity"></activity>


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

</application>

</manifest>
[/code]
Последний раз редактировалось Persik 19 май 2014, 05:55, всего редактировалось 1 раз.

fly1232008
Сообщения: 1
Зарегистрирован: 17 май 2014, 17:09

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

Сообщение fly1232008 » 17 май 2014, 17:19

Добрый вечер. кто работал с с гугл мапс апи подскажите: можно ли получить слои карты отдельно, например слой дорог? Благодарен зараннее!

polev
Сообщения: 8
Зарегистрирован: 08 мар 2014, 17:42

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

Сообщение polev » 18 май 2014, 11:52

Еще один возможный способ решения проблемы, когда при подписании приложения реальным ключом не отображается карта, а с дебажным все хорошо.
На завершальном этапа мастера "Export Signed..." перед нажатием кнопки готово, отображается совсем другой ключ, чем прописан в параметрах Еклипса. Вот его и нужно вставить в гугловую консоль, где получить другой ключ, который необходимо прописать в манифесте.

polev
Сообщения: 8
Зарегистрирован: 08 мар 2014, 17:42

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

Сообщение polev » 19 май 2014, 10:56

У меня два акаунта: личный и тот, с которого я выложил приложение на маркет. Только что заметил, что в приложении я указал API ключ от личного акаунта. Чем это грозит, могу ли я безболезненно сменить его на другой?

lightil
Сообщения: 1
Зарегистрирован: 15 май 2014, 23:58

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

Сообщение lightil » 22 май 2014, 11:35

Вопрос по 139 уроку. Приложение запускается но пишет что оно не установлено на девайс, пробую запустить на другой платформе- выводит белый экран и возвращается назад в меню. В чем ошибка?
[2014-05-22 11:32:27 - Emulator] WARNING: Data partition already in use. Changes will not persist!
[2014-05-22 11:32:27 - Emulator] WARNING: SD Card image already in use: C:\Users\Oleg\.android\avd\AVD_233.avd/sdcard.img
[2014-05-22 11:32:27 - Emulator] WARNING: Cache partition already in use. Changes will not persist!

Sheng11
Сообщения: 1
Зарегистрирован: 25 май 2014, 21:50

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

Сообщение Sheng11 » 26 май 2014, 11:13

Доброго времени суток!
Есть небольшая просьба: можете, пожалуйста, выложить рабочий код для кнопки местонахождения?

УченикСтартАндроида
Сообщения: 1
Зарегистрирован: 07 июн 2014, 08:46

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

Сообщение УченикСтартАндроида » 07 июн 2014, 09:13

Всем доброго дня!
Пытаюсь создать проект Google maps, при отладке intellij idea ругается, говорит, что
Error:(29, 44) java: cannot find symbol
symbol: method getSupportFragmentManager()
location: class com.example.GoogleMaps.MyActivity
////////////////////////////////
mapFragment = (SupportMapFragment) getSupportFragmentManager() //getSupportFragmentManager обведен красными
.findFragmentById(R.id.map);

Sebler
Сообщения: 30
Зарегистрирован: 17 апр 2014, 17:50

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

Сообщение Sebler » 27 июн 2014, 03:24

Всем привет. На основе уроков сделал проект и в процессе заметил следующее. Такой вот код

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

		map.setMyLocationEnabled(true);
		map.getUiSettings().setMyLocationButtonEnabled(true);
позволяет нам установить на карту кнопку, при нажатии на которую на карте отображается наше текущее местоположение.

Следующий код

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

        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

	private void setMyLocation() throws InterruptedException {
		if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
			Criteria criteria = new Criteria();
			provider = locationManager.getBestProvider(criteria, true);
			Location location = null;
			location = locationManager.getLastKnownLocation(provider);
			if (location != null)
				myLatLng = new LatLng(location.getLatitude(),
						location.getLongitude());
		}
	}
позволяет нам получить сами координаты нашего местоположения, т.е. широту и долготу.

Так вот, иногда случается так, что LocationManager не может определить координаты текущего местоположения, но при нажатии на кнопку "моё местоположение" (та самая, которую предоставляет сам гугл) реальное местоположение на карте всё равно отображается. Получается, что гугл, в отличие от LocationManager, использует какие-то свои методы получения координат местоположения, и таким образом ему практически всегда известны наши текущие координаты.
Вопрос: как получить эти данные от гугл? Раз LocationManager справляется со своей задачей в разы хуже, чем гугл, то было бы разумнее использовать данные от гугла. Возможно такое?

berk_off
Сообщения: 2
Зарегистрирован: 06 авг 2014, 16:43

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

Сообщение berk_off » 06 авг 2014, 16:52

Ovocik писал(а):Думаю стоит включить в этот урок то, что разработчик обязан включить в приложение текст лицензии. Если я конечно по невнимательности не пропустил.

пруф: https://developers.google.com/maps/docu ... quirements

"Attribution Requirements

If you use the Google Maps Android API in your application, you must include the Google Play Services attribution text as part of a "Legal Notices" section in your application. Including legal notices as an independent menu item, or as part of an "About" menu item, is recommended.

The attribution text is available by making a call to GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo."
Поясните пожалуйста. Если я использую Карты Google на Play, то я в свое приложение должен добавить код, что то вроде такого:

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

    	String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(this);
    	AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(this);
    	LicenseDialog.setTitle("Лицензия карт Google");
    	LicenseDialog.setMessage(LicenseInfo);
    	LicenseDialog.show();
и в определенном месте программы? Карты сразу должны включится, или это происходит через некоторое время? У меня два приложения на Play с картами, и оба не отображают карты, то для работы одного из них, достаточно будет только в нем добавить этот код?

berk_off
Сообщения: 2
Зарегистрирован: 06 авг 2014, 16:43

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

Сообщение berk_off » 12 авг 2014, 16:33

Что такое не везет, и как с этим бороться. Очень долго не мог решить проблему с картами Google. При отладки карты есть, а при упаковки (export) нет. Самое странное, что все прекрасно работало, а потом перестало. Потратил много времени на аналоги (Yandex и OSM), но они не лучше. Решил вернутся и разобраться с Гугл картами. В итоге помогло следующее:
- обновил google-play-services;
- заменил ключ SHA1 с системного, но тот который предлагается при экспорте (спасибо сообщению выше);
- вбил новый ключ (сгенерированный на сайте гугл по новому SHA1) в файл манифест.

Через минуту - две, карты включились. Причем работают и в отладчике (хотя ключ не другой) и после компоновки, с одним ключом.

Аватара пользователя
FastRus1804
Сообщения: 49
Зарегистрирован: 22 июн 2014, 11:20

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

Сообщение FastRus1804 » 23 дек 2014, 18:30

А как настроить Google Play services в Android Studio?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

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

Сообщение klblk » 24 дек 2014, 07:26

FastRus1804 писал(а):А как настроить Google Play services в Android Studio?
http://developer.android.com/google/pla ... setup.html

Brun
Сообщения: 1
Зарегистрирован: 09 фев 2015, 13:28

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

Сообщение Brun » 09 фев 2015, 13:33

Добрый день! Искал по документации гугла, но так и не нашел ответа на вопрос. Как можно вставить в приложение свою созданную кастомную карту со своими объектами из Google My Maps?

dimm987
Сообщения: 1
Зарегистрирован: 10 фев 2015, 21:22

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

Сообщение dimm987 » 10 фев 2015, 21:26

Приветствую! Подскажите пожалуйста при запуске апк, закрывается приложение говорит "К сожалению,приложение закрыто"

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 10 фев 2015, 22:42

dimm987 писал(а):Приветствую! Подскажите пожалуйста при запуске апк, закрывается приложение говорит "К сожалению,приложение закрыто"
Подключите к студии, воспроизведите ошибку, и проверьте логи по фильтру Error
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

pka
Сообщения: 6
Зарегистрирован: 26 ноя 2014, 23:45

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

Сообщение pka » 12 мар 2015, 18:19

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 23 сен 2015, 12:25, всего редактировалось 1 раз.

Нурик
Сообщения: 5
Зарегистрирован: 06 дек 2014, 15:07

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

Сообщение Нурик » 03 апр 2015, 16:22

Я создал карту в приложений через Google Maps Android API v2. И карта работает в эмуляторе. Но когда скачиваешь приложение через Play Market карта не работает, не работает даже если отправляешь APK через USB в смартфон. Подскажите из-за чего это может быть? И как это исправить?

Ответить