android– 谷歌地图7开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置

android– 谷歌地图7开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置,第1张

概述在我的应用中,用户可以保存特定位置的纬度和经度.我希望他们能够通过geointent等手机在手机上启动其他应用,以便他们可以轻松获得准确的指示.这是我用来生成地理意图的代码:publicstaticIntentgetFindIntent(Contextcontext){Intentintent=newIntent();Share

在我的应用中,用户可以保存特定位置的纬度和经度.我希望他们能够通过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, latitude, 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开始使用地理意图是将一个引脚放在距离坐标最近的地址而不是确切的位置所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1117005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存