Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 谷歌地图7开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用中,用户可以保存特定位置的纬度和经度.我希望他们能够通过 geo intent等手机在手机上启动其他应用,以便他们可以轻松获得准确的指示.这是我用来生成地理意图的代码

public static intent getFindIntent(Context context) {
    Intent intent = new Intent();

    SharedPreferences prefs = Tools.getPrefs(context);
    String latitude = prefs.getString(Const.LAT_KEY,"");
    String longitude = prefs.getString(Const.LONG_KEY,"");

    intent.setAction(Intent.ACTION_VIEW);
    String uri = String.format(Locale.US,"geo:%s,%s?z=%d&q=%s,%s",latitude,longitude,Const.ZOOM_LEVEL,longitudE);


    intent.setData(Uri.parse(uri));

    return intent;
}

显然,大多数人都会使用谷歌地图,因为它在每个人的手机上.当我第一次发布我的应用程序时,谷歌地图将启动并放置一个引脚,该引脚位于geo uri的q参数中指定的确切坐标处,该参数被设置为意图的数据.随着Google Maps 7的发布,地图似乎会在距离提供的坐标最近的地址处放置一个图钉.这给我带来了一个问题,因为用户应该能够准确地导航回到保存的位置,而不是靠近它的地址.我发现这个文档的唯一地方是here.这些文档来自官方Android开发者网站,但它们非常稀疏.是否有替代地理意图提供此功能或我的代码有什么问题?我认为谷歌地图违反了它的API合同,因为我提供的是坐标,而不是地址.

解决方法

删除引脚,请使用以下代码

try {
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("geo:" + AppointmentDetailLayout.docLatitude
            + "," + AppointmentDetailLayout.docLongitude
            + "?q=" + AppointmentDetailLayout.docLatitude
            + "," + AppointmentDetailLayout.docLongitude
            + "(" + label + ")"));
    intent.setComponent(new ComponentName(
        "com.google.android.apps.maps","com.google.android.maps.MapsActivity"));
    context.startActivity(intent);
    } catch (ActivityNotFoundException E) {

    try {
        context.startActivity(new Intent(
            Intent.ACTION_VIEW,Uri.parse("market://details?id=com.google.android.apps.maps")));
    } catch (android.content.ActivityNotFoundException anfE) {
        context.startActivity(new Intent(
            Intent.ACTION_VIEW,Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps")));
    }

    e.printStackTrace();
    }

如需方向,请使用:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://maps.google.com/maps?saddr=" + lat
            + "," + lng + "&daddr="
            + AppointmentDetailLayout.docLatitude + ","
            + AppointmentDetailLayout.docLongitudE));

    context.startActivity(intent);

大佬总结

以上是大佬教程为你收集整理的android – 谷歌地图7开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置全部内容,希望文章能够帮你解决android – 谷歌地图7开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。