问题标签 [xamarin.forms.maps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
83 浏览

xamarin.android - Xamarin Forms Maps Pin 显示在 android 模拟器上,但未显示在 android 设备上

我已经xamarin为 android开发了一个应用程序xamarin.forms.maps。在 android 模拟器中调试工作正常。在 android 设备上调试仍会显示地图,但既不会以过去坐标为中心,也不会绘制图钉。

在此处输入图像描述

0 投票
1 回答
354 浏览

xamarin - Xamarin Forms Map Viewable Area 事件处理程序

我的屏幕上有一个 Xamarin 表单地图,我正在使用 PropertyChanged 事件从我的服务器检索地理位置信息并在屏幕上显示正确的图钉。

在编写解决方案时,我注意到 PropertyChanged 事件通过地图上的一次缩放或拖动操作多次触发(最多 10 次)。这会导致对服务器的不必要调用,这是我想避免的。

理想情况下,我只想在调用最终的 PropertyChanged 事件时对服务器进行一次调用,但我找不到一个简单的解决方案来实现这一点。

此时,我在页面中添加了一个刷新按钮,该按钮在 PropertyChanged 事件发生时启用,并在用户使用该按钮后禁用它。

显然,这修复了对服务器的过多调用,但使解决方案成为手册。我想知道是否有一种更优雅的方式来进行服务器调用但自动进行。

提前致谢。

0 投票
1 回答
339 浏览

xamarin.forms - Xamarin.Forms.Maps 在 android 7+ 上崩溃

我是一名初学者 xamarin.forms 开发人员,我为我的城镇开发了一些带有谷歌地图的免费应用程序。

该应用程序在所有 Visual Studio (2019) android 模拟器甚至我的旧手机 (android 4.3) 上都能完美运行。

申请的发布也很成功。

然而,在他的手机(android 9)上安装该应用程序的第一个用户向我报告说该应用程序已崩溃。只是在显示(尝试)地图时崩溃,没有任何错误消息。但是应用程序的任何其他(没有地图)“ContentPage”都可以正常工作。仅当用户尝试使用地图控件打开 ContentPage 时才会发生崩溃。

因为我没有真正的 android 9 设备(并且在所有 Visual Studio 的 android 模拟器上该应用程序都可以工作),所以我安装了 Nox Player:
https
://www.bignox.com/并创建了 2 个可用的模拟器:android 5.1.1和 android 7.1.2
结果:应用程序在 android 5 上成功运行并在 android 7 上崩溃(与 android 7 模拟器一起 - 模拟器程序只是关闭而没有任何错误消息)。

好的。我创建了一个最简单的测试 xamarin 表单地图应用程序 - 仅显示地图,仅此而已。

MainPage.xaml:

同样的故事:适用于所有visual studio的android模拟器,适用于我的旧android 4.3设备,适用于nox-player android 5并在nox android 7上崩溃!

然后,我试图从微软文档中编译一个示例。例如:
https
://docs.microsoft.com/en-us/samples/browse/?products=xamarin&term=Xamarin.Forms.Maps所有这些示例都放在这里:
https ://github.com/xamarin/xamarin- forms-samples/tree/master/WorkingWithMaps
我刚刚下载了解决方案,将我的“com.google.android.maps.v2.API_KEY”替换为 AndroidManifest.xml 并编译它。没有更多的动作。
结果:完全相同的行为。

更准确地说,最初我使用了 Xamarin.Forms.GoogleMaps 包: https
://github.com/amay077/Xamarin.Forms.GoogleMaps ,结果相同

在此页面上还有已编译的带有示例 的apk的链接: https ://install.appcenter.ms/users/okuokuoku/apps/xfgooglemapsample/distribution_groups/trial
结果:相同。

请问,谁知道是什么原因?

更多信息: Android 应用程序选项 pg1 Android 应用程序选项 pg2 Android 应用程序选项 pg3

AndroidManifest.xml:

0 投票
2 回答
498 浏览

xamarin.forms - 不同依赖版本上的 Nuget 包冲突

我在我的 PCL 项目中使用 Xamarin.Forms.Maps 和 Microsoft.AppCenter.Push。最近我尝试将我的 Push 更新到最新版本,但它与 Maps 发生冲突,因为需要不同版本的 Xamarin.GooglePlayServices.Base。

严重性代码说明项目文件行抑制状态错误 NU1107 Xamarin.GooglePlayServices.Base 检测到版本冲突。将 Xamarin.GooglePlayServices.Base 71.1610.0 直接安装/引用到项目 XXX.Android 以解决此问题。

XXX.Android -> Microsoft.AppCenter.Push 2.5.0 -> Xamarin.Firebase.Messaging 71.1740.0 -> Xamarin.Firebase.Iid 71.1710.0 -> Xamarin.Firebase.Iid.Interop 71.1601.0 -> Xamarin.GooglePlayServices .Base (>= 71.1610.0)

XXX.Android -> Xamarin.Forms.Maps 4.3.0.947036 -> Xamarin.GooglePlayServices.Maps 60.1142.1 -> Xamarin.GooglePlayServices.Base (= 60.1142.1)。

Push 需要 71 版,而 Maps 需要 60 版。我可以知道如何解决这个问题,我很好奇为什么 Maps 不能使用更高版本?它不向后兼容吗?

谢谢你。

0 投票
1 回答
361 浏览

xamarin.forms - 区域更改时如何获取view.map(Xamarin.Forms.Maps)中心的纬度和经度?

请评论,当区域更改时,如何获取地图中心(Xamarin.Forms.Maps)的经纬度?在 C# 中,检索属性“Map.VisibleRegion”( https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.maps.map.visibleregion?view=xamarin-forms ) 并找到相关的属性“MapSpan.Center”。但是,它与 F# 的 fabulous 不同,我不知道如何从 view.map 中检索属性。谢谢你。

0 投票
1 回答
113 浏览

xamarin - Xamarin.Forms.Map 显示来自命令的 PIN

我正在尝试使用 MVVM 模式。当命令执行时,我得到一个引脚列表。我的问题是如何将图钉添加到地图上?如果在 ClientMap() 构造函数中定义,则引脚列表为空。有什么建议么?

0 投票
1 回答
211 浏览

xamarin.forms - 如何在 Xamarin.Forms.maps.map 上显示选择器

我的应用程序有一个我在 XAML 中的 Stacklayout 中创建的地图组件,如下所示:

然后我从数据库搜索中获取一个位置,在该位置放置一个图钉并平移到它:

应用程序中的谷歌地图

到目前为止一切顺利,但如果我点击图钉,它会变得更好......

更好的谷歌地图

我正在寻找一种方法来让底部的谷歌地图链接立即出现。我还想让标签显示在图钉上。我尝试amap.SendMapClicked(pin.Position)在调用 MoveToRegion 后立即调用,但没有任何反应。

最后我想显示谷歌地图中的“模式选择器”,它在卫星和默认之间切换。

这有可能吗?大量的谷歌搜索并没有给我太大的希望。

0 投票
1 回答
77 浏览

mvvm - 在页面加载之前设置传递的参数

我已将 xamrin.form.maps 移至 MVVM 并将我的 xaml 设置为

我的 customMap 类

从第一页开始,我将 lat lng 发送到地图。如果我在我的 VM 的构造函数中设置 MapPosition 它可以完美运行,问题是在绑定所有内容之前将 lat 和 lng 获取到我的构造函数,否则它不会更新。

在视图模型中,我正在收集参数以设置位置。

0 投票
1 回答
125 浏览

list - 如何在修改列表时迭代 Xamarin.Forms.Maps Map.Pins 列表?

我正在开发一个利用 Maps 包的 Xamarin.Forms 应用程序。Map 对象包含一个 IList Pins,它存储包含 Label、Position 和其他属性的 Pin 对象列表。我试图通过将它们的位置与包含相同属性(ID、位置等)的自定义对象的集合进行比较来更新此 Pin 图列表,以及它们是否不再存在于此列表中,并相应地删除它们。

为了详细说明,每次更新时,我都想遍历 Pins 列表,删除不再与集合中的对象对应的所有引脚,添加与集合中的新对象对应的所有引脚,并更改任何引脚的位置相应对象的位置发生了变化。

我试图通过迭代引脚并在必要时删除、添加和更改引脚时进行相应的比较来做到这一点。这里的问题是每次删除 Pin 时都会出现以下错误:

这在修改正在迭代的列表时是可以预料的,但是所有可用的解决方案都可以解决这个问题,例如在实例化 foreach 循环时使用 Maps.Pins.ToList() ,使用 for 循环而不是 foreach循环,甚至创建 Pins 列表的副本以在修改原始列表时进行迭代,都不能解决这个问题。

我知道其中一些解决方案有效,因为我在比较自定义对象列表时使用它们来克服这个问题,但由于某种原因,它们似乎都不适用于 Map.Pins 列表。谁能指出我可能做错了什么,或者是否有一些关于 Map.Pins 列表的细节将其排除在这些解决方案之外?有没有其他方法可以解决这个问题?

作为参考,这里有一些方法,在代码中,我尝试实现“删除不应该再存在的引脚”功能:

.ToList()

循环

创建新列表

首先十分感谢

0 投票
0 回答
613 浏览

xamarin.forms - 如何在 Xamarin.Forms 中正确绑定视图模型中的地图/引脚?

我跟着doc,试图绑定图钉,但失败了。地图始终显示默认位置罗马。这是源代码:

在 DetailPage.xmal 中:

在 DetailPageModel.cs 中:

在 Location.cs 中:

在 ExtendedBindableObject.cs 中:

由于在视图模型中正确接收了 navigationData 并且页面的绑定上下文也在工作,我只是不知道可能缺少什么。任何提示将不胜感激!

实际上我还有一个困惑,为什么官方文档使用自定义 Location 类而不是 Pin 类,因为 Pin 继承自 Element/BindableObject/Object?