MKMap 不显示 Open Street Map 瓦片覆盖

MKMap don't display Open Street Map tile overlay

我尝试在 Xamarin 中的 MKMapView 上将 OSM 图块显示为 Apple 地图上方的层 iOS

private MKTileOverlay _tileOverlay;
...... 
public override void ViewDidLoad ()
{
  .....
  MapDelegate _mapDelegate = new MapDelegate ();
  map.Delegate = _mapDelegate;
  .....

  String urlTemplate = "http://tile.openstreetmap.org/{z}/{x}/{y}.png";
  _tileOverlay = new MKTileOverlay(urlTemplate);
  _tileOverlay.CanReplaceMapContent = true;
  map.AddOverlay(_tileOverlay, MKOverlayLevel.AboveLabels);

  .....
}

并在 class 中覆盖了 OverlayRenderer“MapDelegate : MKMapViewDelegate”

public override MKOverlayRenderer OverlayRenderer (MKMapView mapView, IMKOverlay overlay)
    {
        if (overlay is MKTileOverlay) 
        {
            var tile = (MKTileOverlay)overlay;
            var renderer = new MKTileOverlayRenderer (tile) {
            };

            return renderer;
        }
        return null;
    }

运行 应用程序我看到没有 OSM 的空白层。

你 iOS 是哪个版本 运行 ?

由于 iOS9Apple 的应用程序传输安全 (ATS) 默认情况下需要 使用 HTTPS。

如果您想要(或需要)使用 HTTP,那么您必须编辑您的 Info.plist 以允许特定(或全局)使用 HTTP。有关详细信息,请参阅 Xamarin 的 documentation