MKMap不显示开放街道地图方块叠加

问题描述:

我尝试显示OSM瓦片上的MKMapView层以上的苹果地图在iOS版XamarinMKMap不显示开放街道地图方块叠加

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); 

    ..... 
} 

和重写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?

由于iOS9苹果的应用程序传输安全(ATS)默认情况下会默认要求使用HTTPS。

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