问题标签 [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.
xamarin.android - Xamarin Forms Maps Pin 显示在 android 模拟器上,但未显示在 android 设备上
我已经xamarin
为 android开发了一个应用程序xamarin.forms.maps
。在 android 模拟器中调试工作正常。在 android 设备上调试仍会显示地图,但既不会以过去坐标为中心,也不会绘制图钉。
xamarin - Xamarin Forms Map Viewable Area 事件处理程序
我的屏幕上有一个 Xamarin 表单地图,我正在使用 PropertyChanged 事件从我的服务器检索地理位置信息并在屏幕上显示正确的图钉。
在编写解决方案时,我注意到 PropertyChanged 事件通过地图上的一次缩放或拖动操作多次触发(最多 10 次)。这会导致对服务器的不必要调用,这是我想避免的。
理想情况下,我只想在调用最终的 PropertyChanged 事件时对服务器进行一次调用,但我找不到一个简单的解决方案来实现这一点。
此时,我在页面中添加了一个刷新按钮,该按钮在 PropertyChanged 事件发生时启用,并在用户使用该按钮后禁用它。
显然,这修复了对服务器的过多调用,但使解决方案成为手册。我想知道是否有一种更优雅的方式来进行服务器调用但自动进行。
提前致谢。
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
结果:相同。
请问,谁知道是什么原因?
AndroidManifest.xml:
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 不能使用更高版本?它不向后兼容吗?
谢谢你。
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 中检索属性。谢谢你。
xamarin - Xamarin.Forms.Map 显示来自命令的 PIN
我正在尝试使用 MVVM 模式。当命令执行时,我得到一个引脚列表。我的问题是如何将图钉添加到地图上?如果在 ClientMap() 构造函数中定义,则引脚列表为空。有什么建议么?
mvvm - 在页面加载之前设置传递的参数
我已将 xamrin.form.maps 移至 MVVM 并将我的 xaml 设置为
我的 customMap 类
从第一页开始,我将 lat lng 发送到地图。如果我在我的 VM 的构造函数中设置 MapPosition 它可以完美运行,问题是在绑定所有内容之前将 lat 和 lng 获取到我的构造函数,否则它不会更新。
在视图模型中,我正在收集参数以设置位置。
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()
循环
创建新列表
首先十分感谢
xamarin.forms - 如何在 Xamarin.Forms 中正确绑定视图模型中的地图/引脚?
我跟着doc,试图绑定图钉,但失败了。地图始终显示默认位置罗马。这是源代码:
在 DetailPage.xmal 中:
在 DetailPageModel.cs 中:
在 Location.cs 中:
在 ExtendedBindableObject.cs 中:
由于在视图模型中正确接收了 navigationData 并且页面的绑定上下文也在工作,我只是不知道可能缺少什么。任何提示将不胜感激!
实际上我还有一个困惑,为什么官方文档使用自定义 Location 类而不是 Pin 类,因为 Pin 继承自 Element/BindableObject/Object?