MKTileOverlay - 添加捆绑瓷砖

Posted

技术标签:

【中文标题】MKTileOverlay - 添加捆绑瓷砖【英文标题】:MKTileOverlay - adding in bundle tiles 【发布时间】:2016-05-08 16:46:18 【问题描述】:

使用平铺地图添加叠加层应该很容易。我有一个很大的问题。他们不显示。

我在文件夹 Baymap 中放大了 15 16 和 17 中 Bayeux 中心的地图图块。 我将文件夹滑入项目中。

这是代码

  import UIKit  
  import MapKit

  class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate 

    @IBOutlet weak var mapView: MKMapView!

    let locationManager = CLLocationManager()

    var latitude: CLLocationDegrees = 0.0
    var longitude: CLLocationDegrees = 0.0

    var cnt: Int = 0


    override func viewDidLoad() 
      super.viewDidLoad()

      self.mapView.delegate = self

      self.mapView.mapType = MKMapType.Standard

      //Map centre
      let centre = CLLocationCoordinate2D(latitude: 49.275,
        longitude: -0.7028)

      //Declare span of map
      let span = MKCoordinateSpan(latitudeDelta: 0.01,
        longitudeDelta: 0.01)

      //Set region of the map
      let region = MKCoordinateRegion(center: centre, span: span)
      self.mapView.setRegion(region, animated: false)
      self.mapView.regionThatFits(region)



      //Get the URL template to the map tiles
      let baseURL = NSBundle.mainBundle().bundleURL.absoluteString

      let urlTemplate = baseURL.stringByAppendingString("baymap/z/x/y.png/")
      print(urlTemplate)

      let carte_indice = MKTileOverlay(URLTemplate:urlTemplate)


      carte_indice.geometryFlipped = true

      carte_indice.canReplaceMapContent = false


  self.mapView.addOverlay(carte_indice)







override func didReceiveMemoryWarning() 
  super.didReceiveMemoryWarning()
  // Dispose of any resources that can be recreated.


func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer!

  print("call overlay")
  if overlay is MKTileOverlay
  
print("is MKTileoverlay")
    var renderer = MKTileOverlayRenderer(overlay:overlay)

    renderer.alpha = 0.8

    return renderer
  
  return nil


我已编辑问题以添加打印“呼叫覆盖”和“是 MKTileoverlay”。 它们都在控制台中打印。

巴约的苹果地图显示正常,但没有叠加。

在控制台中,我收到了几十个这样的错误,它们指的是不在捆绑包中的图块。

:加载 URL 文件时出错:///Users/colinmcgarry/Library/Developer/CoreSimulator/Devices/5A9A20A4-9C3F-4A65-8823-9721463FF985/data/Containers/Bundle/Application/D2C87A46-E848-4C0D-9B05- 30E731EC037F/TileOverlaystack.app/baymap/17/65283/86214.png/:错误域=NSURLErrorDomain 代码=-1100“在此服务器上找不到请求的 URL。”

谁能看到我做错了什么。在 Swift 中捆绑平铺覆盖是否有一个很好的教程?

谢谢

【问题讨论】:

【参考方案1】:

找到了解决办法。 carte_indice.geometryFlipped = true

应该是假的。

取决于瓷砖系统。

【讨论】:

以上是关于MKTileOverlay - 添加捆绑瓷砖的主要内容,如果未能解决你的问题,请参考以下文章

子类化的 MKTileOverlay 不在地图上显示

iOS 7 有没有办法知道 MKTileOverlay 何时完成加载图块?

MapKit:添加 MKPolyline 隐藏 MKTileOverlay

快速在地图上添加 MKTileOverlay

子类化 MKTileOverlay 的困难

iOS 13.2 MKTileOverlay 偶尔不会渲染