Xamarin Forms 地图 - 自定义标记图片

7

有没有办法在Xamarin Forms Maps中更改标记的图像?我想把标记变成自定义的图片,如果必须在本地完成,能否给我一个简单的示例。谢谢。


可以在这里检查我的答案:http://stackoverflow.com/questions/25388392/xamarin-forms-mkmapview-ios-render - Rui Marinho
3个回答

2
对于后来者,现在在Xamarin Forms中已经很好地支持了这一点。
实质上,您需要在PCL或共享代码中创建一个自定义地图类,该类继承自Xamarin Forms Map,然后在每个平台项目中创建自定义渲染器。
这些自定义渲染器对于每个平台都会有所不同,处理特定于该平台的图标呈现和单击该特定平台的那个引脚时显示的任何弹出信息。 您不必为所有平台创建自定义渲染器,对于您不需要的任何平台,都将显示普通地图。
这些内容现在在Xamarin Forms Developers Guide的Custom Renderers | Customizing a Map section中都有非常完善的文档。 该文档详细介绍了Android、iOS和UWP的自定义渲染器的创建,并解释了所需的代码。 由于代码量很大,因此我不会在此重复。 这里还有一个附带的示例解决方案
值得注意的一点是,如果您试图在自己的项目中复制该代码,则还需要将图片添加到ProjectName\Droid\Resources目录中的各个可绘制文件夹中,以及在布局目录中添加两个axml文件。

1

这个项目可能对你有所帮助。raechten/BindableMapTest

从描述中可以看出:

这是一个小样本,用于将集合绑定到 Xamarin Forms 地图标记(直接绑定到 Pins 属性得到支持之前的有效方法)。

包含自定义和可点击的标记。

它有 Android 和 iOS 的实现。


1
显然这很受限制,你需要查看自定义渲染器来实现你所需的功能。
以下链接中有关于此的讨论:

http://forums.xamarin.com/discussion/17916/customization-of-xamarin-forms-maps-pins

具体参考以下链接的项目,其中有人从Assets文件夹中实现了自定义图像标记:

https://github.com/paulpatarinski/ShouldIWashMyCar/blob/master/Android/Renderers/MapViewRenderer.cs

我还没有尝试过这个,但这可能是在寻找自定义地图渲染时的一个好起点。

它无法在iOS自定义渲染中工作,因为Xamarin.Forms.Maps.iOS.MapRenderer由于其保护级别而无法访问。因此,我尝试通过ViewRenderer来实现它,但我不确定如何做。你能帮忙吗?谢谢。 - user3841879
如果您能提供目前的代码,我可能会在周末时候查看它,因为那时我可以使用我的 Mac 进一步研究。 - Pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接