我正在开发一个应用于android和ios的xamarin表单的应用程序。 问题是IOS地图显示错误的位置。
代码:
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));
完全相同的结果:(
答案 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,但不确定它是否对您有帮助。你可能也会提前做同样的事情。