如何在Xamarin表单Google Map中创建自定义信息窗口

时间:2018-09-16 14:24:56

标签: google-maps xamarin.forms xamarin.ios infowindow

我想在ios地图中创建一个自定义信息窗口,该如何实现。我正在使用xamarin形式的Google地图插件来创建地图。

请帮助我

我想要这样的自定义信息窗口

enter image description here

1 个答案:

答案 0 :(得分:2)

我正在使用Xamarin实现这一目标。形式。 Google Maps插件,而且我正在为信息窗口设计实现自定义渲染器。

在Xaml中

  <maps:CustomMapiOS x:Name="customMap" MapType="Street" Grid.RowSpan="3" 
  IsShowingUser="True" >                 
   </maps:CustomMapiOS>

在可移植项目中创建自定义类

 public class CustomMapiOS : Map
  {
    public CustomMapiOS()
    {

    }
  }

在iOS项目中创建CustomRendererMap

 public class CustomRendererMap : MapRenderer
{
    private MapView mapView;

    UIView customPinView;

    protected override void OnElementChanged(ElementChangedEventArgs<View> e)
    {
        base.OnElementChanged(e);

        if (e.OldElement != null)
        {
            CustomMapiOS formsMap = (CustomMapiOS)e.NewElement;
        }

        if (e.NewElement != null)
        {
            CustomMapiOS formsMap = (CustomMapiOS)e.NewElement;
            MapView nativeMap = Control as MapView;
            mapView = nativeMap;
            nativeMap.MarkerInfoWindow = new GMSInfoFor(markerInfoWindow);

        }
    }

    UIView markerInfoWindow(UIView view, Marker marker)
    {
        //infowindow design
    }
}