MKMap不显示Open Street Map图块叠加

时间:2015-12-14 13:36:59

标签: ios xamarin.ios maps mkmapview openstreetmap

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

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的空白图层。

1 个答案:

答案 0 :(得分:1)

您正在运行哪个版本的iOS?

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

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