我需要在使用MapsUI瓷砖的OpenStreetMap映射控件上添加一堆引脚。
问题是我在他们的文档中找不到任何提到引脚的东西,所以我的问题是:
是否有图钉可用,但有不同的名称,或者我必须自己画图钉(使用几何和点,在我发现的一些例子),如果有的话,我如何保持相同的大小时,我缩放地图?
也许有人可以指出,我应该在他们的文档看哪里,以防我失明而错过了它。
谢谢!
发布于 2018-10-03 14:13:31
你的想法是用你自己的位图画成“引脚”。
麻井有特色。一个特征有一个几何学,它可以是一个点,线串和多边形(和其他一些)。一个特征是用某种风格绘制的。您需要做的是创建具有点几何学的特性,并使用以位图为符号的符号样式。您需要注册位图并在符号中使用bitmapId。参见这里的示例:
https://github.com/Mapsui/Mapsui/blob/master/Samples/Mapsui.Samples.Common/Maps/PointsSample.cs
发布于 2019-06-06 14:41:44
您的Mapsui地图视图Mapsui.UI.Forms.MapView具有属性Pins。你可以在那里加引脚。您可以从您的MapView的代码隐藏*xaml.cs访问MapView视图。
为此,首先,在XAML页面中命名您的地图视图:
<ContentPage
xmlns:mapsui="clr-namespace:Mapsui.UI.Forms;assembly=Mapsui.UI.Forms"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="YourProject.Pages.YourMap">
<ContentPage.Content>
<mapsui:MapView
x:Name="selectMapControl"/>
</ContentPage.Content>
</ContentPage>然后从页面的C#代码中访问它:
using Mapsui.UI.Forms;
protected override async void OnAppearing()
{
selectMapControl.Pins.Add(new Pin(new MapView())
{
Position = new Position(0, 0),
Type = PinType.Pin,
Label = "Zero point",
Address = "Zero point",
});
}希望这个最简单的例子能有所帮助。
发布于 2018-10-03 14:05:04
您可以使用Xamarin.Forms.GoogleMaps,因为它们为您提供了添加您选择的多个引脚的功能。
下面是示例代码:
var position = new Position(Latitude, Longitude);
var pin = new Pin
{
Type = PinType.Place,
Position = position,
Icon = BitmapDescriptorFactory.FromBundle("pin.png"),
Label = "custom pin",
Address = "custom detail info",
};
MyMap.Pins.Add(pin);https://stackoverflow.com/questions/52627678
复制相似问题