Xamarin Forms IOS地图打开位置错误

4
我正在开发一款Xamarin Forms应用程序,旨在在Android和iOS上运行。问题是iOS地图显示了错误的位置。

iOS位置(错误)

iOS位置(错误)

Android位置(正确)

Android位置(正确)

代码:

switch (Device.RuntimePlatform)
        {
            case Device.iOS:
                uri = new Uri(string.Format("http://maps.apple.com/?ll={0}", x + ',' + y));
                System.Diagnostics.Debug.WriteLine(uri);
                Device.OpenUri(uri);
            break;

            case Device.Android:
                uri = new Uri("https://www.google.com/maps/search/?api=1&query=" + x + ',' + y);
                System.Diagnostics.Debug.WriteLine(uri);
                Device.OpenUri(uri);
            break;

        }

在这个例子中,x="39.7301803"y="-8.8438668"

更新

ExternalMaps插件替换上面的代码。
var success = CrossExternalMaps.Current.NavigateTo(Store.Name, Double.Parse(x), Double.Parse(y));

完全相同的结果 :(
2个回答

2

你提供的两个链接(手动拼接)都能打开正确的应用程序并指向同一位置。

但是,当我将 y 参数设置为“0”时,我进入了你错误截图的确切区域。你的代码有问题吗?比如,在代码片段之前未设置 y?

你能分享更多代码吗?

两个平台之间的区别在于如何构建字符串。我建议将 iOS 部分更改为:

uri = new Uri("http://maps.apple.com/?ll="+ x + ',' + y));

我已经将x和y替换为正确的值,结果仍然相同。 - Tiago_nes
在这个例子中,x="39.7301803"y="-8.8438668" - Tiago_nes
我需要将坐标转换为另一种格式才能使用苹果地图吗? - Tiago_nes
我可能会在x=0处得到错误的位置(靠近非洲)。 - Tiago_nes
非常感谢,我去重复检查了一遍,发现自己把坐标输入成字符串了。 - Tiago_nes
显示剩余5条评论

0

我无法评论,所以我回答你的问题。我不知道为什么你要在设备浏览器中执行URL。我建议最好使用Xamarin.Forms命名空间中的“Map”控件。我认为它将满足您在地图上设置精确位置的要求。

这里是Xamarin.Forms.Map的良好示例

更新-1

我不确定您是否想使用插件。我找到了一个很好的插件,可以在您的Xamarin.iOS、Xamarin.Android、Windows和Xamarin.Forms项目中打开外部地图到特定的地理位置或地址。

有关更多详细信息,请查看此处

我也刚发现并测试了这里的代码,不确定它是否对您有帮助。您可能早些时候已经得到了相同的东西。


我不想制作地图视图,我想打开默认的地图应用程序。 - Tiago_nes
同样的事情发生了。在安卓上可以正常显示位置,但在iOS上会把我送到海里。 - Tiago_nes
你使用过这个插件吗? - Gaurang Dave
是的,您可以查看有问题的代码行更新。 - Tiago_nes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接