Swift 尽管使用示例中相同格式的URL(ArcGIS macOS SDK),但未加载来自URL的映射
我正在尝试将OpenStreetMap加载到我用Swift编写的程序中,使用ArcGIS SDK for macOS。我可以加载内置地图(Swift 尽管使用示例中相同格式的URL(ArcGIS macOS SDK),但未加载来自URL的映射,swift,arcgis,Swift,Arcgis,我正在尝试将OpenStreetMap加载到我用Swift编写的程序中,使用ArcGIS SDK for macOS。我可以加载内置地图(theMap.map=AGSMap(basemap:AGSBasemap.images())),但我似乎无法从其URL加载OpenStreetMap 这是我正在使用的URL: 我使用以下代码加载URL,这些代码取自ArcGIS示例: let openStreetMap = "https://www.arcgis.com/home/item.html?id=b8
theMap.map=AGSMap(basemap:AGSBasemap.images())
),但我似乎无法从其URL加载OpenStreetMap
这是我正在使用的URL:
我使用以下代码加载URL,这些代码取自ArcGIS示例:
let openStreetMap = "https://www.arcgis.com/home/item.html?id=b834a68d7a484c5fb473d4ba90d35e71"
let tiles = AGSArcGISVectorTiledLayer(url: URL(string: openStreetMap)!)
theMap.map = AGSMap(basemap: AGSBasemap(baseLayer: tiles))
地图没有加载,我最后得到的只是一个灰色网格背景。令人惊讶的是,如果我将URL与我在ArcGIS示例()中找到的URL交换,则该映射加载时不会出现问题。这两个URL的格式完全相同,但只有一个有效。这是为什么?我如何让它加载OpenStreetMapURL?谢谢。除非您需要使用ARCGIS SDK,否则这是使用mapkit的替代方法
override func viewDidLoad() {
super.viewDidLoad()
let osm = MKTileOverlay(urlTemplate: "https://a.tile.openstreetmap.org/{z}/{x}/{y}.png")
self.map.add(osm)
}
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let tile = overlay as? MKTileOverlay {
let renderer = MKTileOverlayRenderer(tileOverlay: tile)
return renderer
}
return MKOverlayRenderer()
}
除非您需要使用ARCGIS SDK,否则这是使用mapkit的替代方法
override func viewDidLoad() {
super.viewDidLoad()
let osm = MKTileOverlay(urlTemplate: "https://a.tile.openstreetmap.org/{z}/{x}/{y}.png")
self.map.add(osm)
}
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let tile = overlay as? MKTileOverlay {
let renderer = MKTileOverlayRenderer(tileOverlay: tile)
return renderer
}
return MKOverlayRenderer()
}
根据它的描述,第一个URL是平铺地图服务,而第二个URL是向量。
也许您应该将该层声明为agsargistiledlayer根据其描述,第一个URL是平铺地图服务,而第二个URL是向量。 也许您应该将该层声明为agsargistiledlayer