xamarin表单IOS映射在错误的位置打开

时间:2017-12-26 17:50:54

标签: xamarin.forms maps

我正在开发一个应用于android和ios的xamarin表单的应用程序。 问题是IOS地图显示错误的位置。

IOS位置(错误)

IOS Location (WRONG)

Android位置(右)

Android Location (RIGHT)

代码:

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 个答案:

答案 0 :(得分:2)

您的两个链接(手动放在一起)在正确的应用中打开并指向相同的位置

但是当我将y param设置为" 0"我最终在你的错误截图的确切区域。可能是你的代码有问题吗?就像没有设置(在代码段之前)

你能分享更多代码吗?

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

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

答案 1 :(得分:0)

我无法评论这就是我回答你问题的原因。我不知道你为什么要在设备浏览器上执行url。我建议你更好地使用" Map"控制来自Xamarin.Forms名称空间。我认为它将完全满足你对地图上确切点的设定位置的要求。

Here是Xamarin.Forms.Map的好样本

<强> UPDATE-1

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

有关详情和信息,请查看this

刚刚找到并测试了代码here,但不确定它是否对您有帮助。你可能也会提前做同样的事情。