我尝试在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的空白图层。
答案 0 :(得分:1)
您正在运行哪个版本的iOS?
由于iOS9 Apple的应用传输安全(ATS)默认情况下需要使用HTTPS。
如果您希望(或需要)使用HTTP,则必须编辑Info.plist
以允许特定(或全局)使用HTTP。有关详细信息,请参阅Xamarin的documentation。