====== Интеграция гугло-карты v2 ======
===== Библиотеки =====
Прежде всего необходимо подключить Google Play Services к вашему приложению.
Его необходимо установить вместе с sdk и он находится:
/sdk/extras/google/google_play_services/libproject/google-play-services_lib
===== Ключи =====
Сначала регистрируем приложение в апи консоле: [[https://code.google.com/apis/console]]
Не забудьте дать права на //Google Maps Android API v2// на вкладке //Services//
На вкладке //API Access// - создаём ключи
Далее нужно получить md5 hash
Для этого выполняем команду
"C:\Program Files (x86)\Java\jdk1.7.0_03\bin\keytool" -v -list -alias <алиас> -storepass <пароль> -keystore <файл с ключами> > gmap_r
"C:\Program Files (x86)\Java\jre7\bin\keytool" -v -list -alias androiddebugkey -storepass android -keystore debug.keystore > gmap_d
Путь к файлу keytool - необходимо указать свой
Далее находим строку вида
SHA1: E3:C1:1D:EF:6C:D3:D8:4C:C1:D9:4C:A7:6D:DB:11:A2:AC:4B:5C:76
Только что обнаружил, последняя sdk этот sha1 сертификат показывает при экспорте подписанного приложения, так что можно его прям от туда взять и не заморачиваться с командной строкой
И как указанно:
One SHA1 certificate fingerprint and package name (separated by a semicolon) per line. Example: 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.example
Добавляем к ней имя из нашего приложения и создаём андроид-ключ
===== Манифест =====
В //AndroidManifest.xml// добавляем с раздел в самый конец перед закрывающимся тегом :
Вместо //API_KEY// - подставляете ключ созданный на предыдущем этапе
Далее добавьте следующий код, заменив com.example.mapdemo with на ваш the package name.
Сохраните AndroidManifest.xml и перезапустите приложение
===== Активити =====
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.Fragment;
import com.google.android.gms.maps.GoogleMap;
public class DetailsActivity extends FragmentActivity {
private GoogleMap map;
private MapView mapView;
private void setUpMapIfNeeded() {
if (map == null) {
map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
if (map != null) {
setUpMap();
}
}
}
private void setUpMap() {
String adress = LocalSettings.getString(this, RR.OPTION_ADDRESS, "");
double lat = LocalSettings.getDouble(this, "lat", 0);
double lon = LocalSettings.getDouble(this, "lon", 0);
String s = adress;
if (lat != 0) {
LatLng p = new LatLng(lat, lon);
s = null;
map.addMarker(new MarkerOptions().position(p).title(adress));
map.animateCamera( CameraUpdateFactory.newLatLngZoom(p, 15.0f ) );
}
new GoogleSearchClicker(this, map, adress, null, s).execute();
}
}
Вроде пишут что не обязательно какое-то спец активити базовым делать, но я наследую от FragmentActivity
И в лэйоут: