Начать внешнюю активность для отображения карт - PullRequest
1 голос
/ 08 февраля 2012

Это как дела.Я хочу начать внешнее действие для отображения гео-координат, а не внедрять Google Maps внутри моего приложения.В настоящее время у меня слишком много под рукой, и я не хочу испытывать трудности с реализацией карты.Следовательно, можно ли передать параметры активности внешних карт, аналогично тому, что мы делаем с текстовыми сообщениями, телефонными звонками, камерой и т. Д.?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Вы можете сделать это с помощью этой команды:

private void openMapGeo(String latitude, String longitude) {
    Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:" + latitude + ","
            + longitude + "?z=17&q=" + latitude + "," + longitude));
    // z stands for zoom level
    // replace the q with a search string works too. Example:
    // intent2 = new Intent(Intent.ACTION_VIEW,
    // Uri.parse("geo:0,0?q=Tokyo"));
    startActivity(intent2);
}

Другой способ - использовать URL-адрес веб-сайта карт. Это спросит пользователя, хочет ли он открыть приложение карт (если оно установлено) или браузер:

private void openMapUrl(String latitude, String longitude) {
    Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("http://maps.google.com/?q=" + latitude + "," + longitude));
    startActivity(intent);
}

Некоторые другие примеры здесь: https://github.com/pboos/GoogleMapExamples (посмотрите там на файл Presentation.pdf)


EDIT:

Чтобы использовать оба вышеперечисленных в зависимости от того, установлено ли приложение Google Maps, сделайте это (обе вышеуказанные функции также должны существовать):

private void openMap(String latitude, String longitude) {
    try {
       ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.android.apps.maps", 0 );
        openMapGeo(latitude, longitude);
    } catch(PackageManager.NameNotFoundException e) {
        openMapUrl(latitude, longitude);
    }
}
0 голосов
/ 08 февраля 2012

На самом деле вы можете использовать веб-приложение карты, зайдя в браузер и перейдя на веб-сайт карты Google, а затем выполнив любой запрос, какой пожелаете. Посмотрите на API для карт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...