如何设置某些图标而不是默认图钉?
Posted
技术标签:
【中文标题】如何设置某些图标而不是默认图钉?【英文标题】:How to set certain icon instead of default pins? 【发布时间】:2019-05-29 14:06:29 【问题描述】:我正在尝试使用某些图标而不是地图上的默认 Xamarin.Forms 引脚。 所以我创建了继承 Pin 的 CustomisePin 类。
using Xamarin.Forms.Maps;
namespace agroNet.Tools
public class CustomPin : Pin
public string PinIcon get; set;
这是我在 ViewModel 中尝试过的
private Map _map;
public IrrigNetViewModel(Map map)
dialog = UserDialogs.Instance.Loading(AppResource.LocalizationResource.Loading);
TabTappedCommand = new Command((tabName) => OnTapClicked(tabName.ToString()));
HideListOnTapCommand = new Command(HideListOnTap);
_map = map;
GetData();
这是在位置上设置引脚的方法。
public void LoadMapTab()
//var irrigNetPins = new List<CustomPin>();
foreach (var item in IrrigNetCollection)
//var pins = new CustomPin
//
// Label = item.StationName,
// Position = new Position(item.StationLatitude, item.StationLongitude),
// PinIcon = "satellite.png"
//;
_map.Pins.Add(new CustomPin
Label = item.StationName,
Position = new Position(item.StationLatitude, item.StationLongitude),
//PinIcon = P
);
_map.MoveToRegion(
MapSpan.FromCenterAndRadius(new Position(item.StationLatitude, item.StationLongitude),
Distance.FromKilometers(30)));
//irrigNetPins.Add(pins);
//return irrigNetPins;
在 LoadMapTab 下的注释行是我尝试设置的 pin 图标。
如果由于绑定上下文而重要,这里是 View 的一部分。
public partial class IrrigNetPage : ContentPage
public IrrigNetPage()
InitializeComponent();
BindingContext = new IrrigNetViewModel(MainMap);
我在 Google 上找到了一些示例,例如: https://github.com/raechten/BindableMapTest https://github.com/paulpatarinski/ShouldIWashMyCar
由于某种原因,我无法事件运行它们,但我仍然尝试使用代码,无论我有什么 Pin 都是默认的,甚至不显示。
为图钉设置特定图标的简单方法是什么,是否可以仅使用图标的某些路径而不渲染地图来渲染它(因为我看到很多为自定义图钉创建服装图)。
如果它对我使用 MVVM 模式的人很重要。
【问题讨论】:
可以使用自定义渲染器显示自定义 Pin 图 @HobbyDev 你不说? :O 如果你想使用自定义渲染器,我会从我的一个项目中找到并发布代码。 @NitrusBrio 我尝试为您的要求创建一个示例项目。当页面加载期间引脚的数据可用时,我能够显示自定义引脚。只需将数据分配给页面构造函数的引脚即可。但是如果管脚数据绑定到视图模型,自定义管脚仍然为空。请参阅 Github 上的问题 github.com/xamarin/Xamarin.Forms/issues/6393。如果引脚所需的数据在地图加载时很容易获得,您可以使用来自 github issue 的项目。询问我是否需要任何帮助。 @NitrusBrio 嗨,在开发人员的指导下,我能够创建使用自定义引脚的示例项目。看看github.com/HobDev/CustomPinSample/tree/master 【参考方案1】:官方 Xamarin 示例和文档已过时。我修改了官方自定义引脚示例,以便在 ios 和 android 中使用自定义引脚。该项目托管在GitHub。
here 上的官方示例报告了一个问题。
【讨论】:
以上是关于如何设置某些图标而不是默认图钉?的主要内容,如果未能解决你的问题,请参考以下文章