Xamarin.forms 向Xamarin地图添加标签

Xamarin.forms 向Xamarin地图添加标签,xamarin.forms,xamarin.android,xamarin.ios,android-maps-v2,Xamarin.forms,Xamarin.android,Xamarin.ios,Android Maps V2,我想向地图添加标签。 我在地图上有一堆多边形,它们映射出果园(使用带有Android和iOS自定义渲染的Xamarin表单),并希望在每个多边形上添加一些标签和细节。我已经尝试了下面的方法,在这里你可以用文本作为标记来定制pin,但这并不理想,因为我希望每个pin中都有几行文本,并且不需要点击。我也需要它在iOS和Android中工作 任何帮助都将不胜感激 public Marker AddText(Context context, GoogleMap map, LatLng locat

我想向地图添加标签。 我在地图上有一堆多边形,它们映射出果园(使用带有Android和iOS自定义渲染的Xamarin表单),并希望在每个多边形上添加一些标签和细节。我已经尝试了下面的方法,在这里你可以用文本作为标记来定制pin,但这并不理想,因为我希望每个pin中都有几行文本,并且不需要点击。我也需要它在iOS和Android中工作

任何帮助都将不胜感激

    public Marker AddText(Context context, GoogleMap map, LatLng location, string text, int fontSize, Polygon polygon)
    {
        try
        {
            if (text == null)
                throw new ArgumentNullException(nameof(text));
            if (location == null)
                throw new ArgumentNullException(nameof(location));
            if (map == null)
                throw new ArgumentNullException(nameof(map));
            if (context == null)
                throw new ArgumentNullException(nameof(context));
            if (fontSize <= 0)
                throw new ArgumentOutOfRangeException(nameof(fontSize));




            var textView = new TextView(context);
            textView.Text = text;
            textView.TextSize = fontSize;
            var paintText = textView.Paint;
            var boundsText = new Rect();
            paintText.GetTextBounds(text, 0, textView.Length(), boundsText);
            paintText.TextAlign = Paint.Align.Center;
            paintText.Color = Android.Graphics.Color.White;
            paintText.FakeBoldText = true;
            var bmpText = Bitmap.CreateBitmap(boundsText.Width() + 10, boundsText.Height(), Bitmap.Config.Argb8888);
            var canvasText = new Canvas(bmpText);
            canvasText.DrawText(text, canvasText.Width / 2, canvasText.Height - boundsText.Bottom, paintText);
            var markerOptions = new MarkerOptions();
            markerOptions.SetPosition(location);
            markerOptions.SetIcon(BitmapDescriptorFactory.FromBitmap(bmpText));
            markerOptions.Anchor(0.5f, 0.5f);

            //markerOptions.SetTitle(text);

            Marker marker = map.AddMarker(markerOptions);

            Constants.markerPolygons.Add(markerOptions.Position.ToString(), polygon);
            lstText.Add(marker);

            return marker;
        }
public Marker AddText(上下文上下文、谷歌地图、板条位置、字符串文本、int-fontSize、多边形)
{
尝试
{
if(text==null)
抛出新ArgumentNullException(nameof(text));
if(位置==null)
抛出新ArgumentNullException(nameof(location));
if(map==null)
抛出新ArgumentNullException(nameof(map));
if(上下文==null)
抛出新ArgumentNullException(nameof(context));

如果(fontSize我想你要找的是SkiaSharp。

我也建议您考虑多个多边形的XAMARIN .FALS.GoGOMLAMAP。


我想你要找的是滑雪板。

我也建议您考虑多个多边形的XAMARIN .FALS.GoGOMLAMAP。


您在哪里调用AddText?能否请您添加更多有关自定义渲染器的代码?还可以与我们分享您希望实现的效果更好的图片。您在哪里调用AddText?能否请您添加更多有关自定义渲染器的代码?还可以与我们分享您希望实现的效果更好的图片。工作非常好,谢谢。还切换了一个我将改为表单。谷歌地图取代了自定义渲染,哇,这非常简单!工作非常完美,谢谢。还将所有内容切换为表单。谷歌地图取代了自定义渲染,哇,这非常简单!