打开不适用于Android的特定坐标的地图

时间:2014-10-14 20:41:40

标签: android google-maps

我正在构建一个应用程序,其功能是将特定的预定(但动态)坐标发送到用户的地图应用程序,以便他可以跟踪到它的路径。

目前,我正在使用:

String coordinates = String.format("geo:0,0?q=" + latitude + "," + longitude);
Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse(coordinates) );
startActivity( intent );

然而,当它确实打开地图时,而不是请求的位置,我得到“没有结果[纬度],[经度]”吐司和我当前的位置。

这当然不是坐标本身的问题,因为手动搜索它们工作得很好并且打印请求Uri显示它是正确构造的。令人惊讶的是,只发送两个coords的前两位数字的工作,虽然不发送我想要的地方,但不会给出toast错误信息。

传递值或其他东西时是否需要进行任何额外的格式化?

我正在使用它们原始,-23.561261和-46.681212,例如,我位于巴西,如果这有任何区别,是的,我必须发送坐标,因为遗憾的是数据与实际的格式不一致地址。

更新:事实证明,代码很好,它适用于我的razr-i,但是,在我用于原始测试的Galaxy Express中,它仍然是不行的。

知道发生了什么事吗?这两款设备都运行Android 4.1.2

3 个答案:

答案 0 :(得分:4)

不要错过 错误,因为它已经很久以前了,但长话短说,这就是工作代码:

String coordinates = "http://maps.google.com/maps?daddr=" + latitude + "," + longitude;

Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse(coordinates) );
startActivity( intent );

答案 1 :(得分:2)

您的代码是正确的,

您发送的值是双倍?

    double latitude = -23.561261;
    double longitude = -46.681212;
    String coordinates = String.format("geo:0,0?q=" + latitude + "," + longitude);
    Intent intentMap = new Intent( Intent.ACTION_VIEW, Uri.parse(coordinates) );
    startActivity( intentMap );

必须类似于在浏览器中直接加载网址:

http://www.google.com/maps?q=-23.561261+-46.681212

答案 2 :(得分:0)

问题在于语言环境。如果您调用format(),您的代码将适用于任何手机:

String coordinates = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);