【问题标题】:xamarin forms IOS map opens in wrong locationxamarin 表单 IOS 地图在错误位置打开
【发布时间】:2018-01-09 20:30:30
【问题描述】:

我正在开发一个 xamarin 形式的应用程序,应该可以在 android 和 ios 上运行。 问题是IOS地图显示位置错误。

IOS 位置(错误)

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));

完全一样的结果:(

【问题讨论】:

    标签: xamarin.forms maps


    【解决方案1】:

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

    但是当我将 y 参数设置为“0”时,我最终会出现在您错误屏幕截图的确切区域。会不会是你的代码有问题?就像 y 没有被设置(在 sn-p 之前)

    你能分享更多你的代码吗?

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

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

    【讨论】:

    • 我已经将 x 和 y 替换为正确的值,结果是一样的
    • 在这个例子中x="39.7301803"y="-8.8438668"
    • 难道我需要将坐标转换为另一种格式才能使用苹果地图?
    • 例如,我想确定变量是字符串还是双精度。如果这在平台之间是不同的。如果它们是双打,您也许应该检查双打是如何序列化的:从坐标中我怀疑当前的文化可能是葡萄牙语,小数分隔符将是“,而不是”。 (正如地图应用程序所期望的那样。)您是否在您的 iOS 测试设备上测试了上述链接?你最终在哪里?
    • 我尝试在 mac OS 上打开苹果地图上的链接,它把我送到了非洲附近的大西洋
    【解决方案2】:

    我无法发表评论,这就是我回答您的问题的原因。我不知道你为什么要执行设备浏览器的 url。我建议您最好使用 Xamarin.Forms 命名空间中的“地图”控件。我认为它将完全满足您在地图上确切点上设置位置的要求。

    Here 是 Xamarin.Forms.Map 的好示例

    UPDATE-1

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

    更多详情和信息请查看this

    刚刚找到并测试了代码here,也不确定它是否对您有帮助。你也可能早点得到同样的结果。

    【讨论】:

    • 我对制作地图视图不感兴趣,我想打开默认地图应用
    • 同样的事情发生了。在 android 上显示位置很好,在 iOS 上将我发送到海中。
    • 你用过这个插件吗?
    • 是的,您可以看到有问题的代码行更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2020-01-08
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2013-12-09
    • 2018-05-25
    相关资源
    最近更新 更多