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。
我尝试在 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。