首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在swift中添加地图上的MKTileOverlay

在swift中添加地图上的MKTileOverlay
EN

Stack Overflow用户
提问于 2015-08-05 20:05:51
回答 2查看 2.5K关注 0票数 4

在执行过程中,图像在整个map中重复。我也可以指定一个UIImage来代替URLTemplate?

我已经在某个特定位置添加了覆盖图像。就在现在的位置。

谢谢

这是我的代码:

代码语言:javascript
复制
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.Satellite

        //Map centre
        let centre = CLLocationCoordinate2D(latitude: 40.8325769,
            longitude: 14.318884400000002)

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

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



        var template = "http://tile.openstreetmap.org/0/0/0.png"

        let carte_indice = MKTileOverlay(URLTemplate:template)


        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!
    {

            if overlay is MKTileOverlay
            {
                var renderer = MKTileOverlayRenderer(overlay:overlay)

                renderer.alpha = 0.8

                return renderer
            }
            return nil
    }

}
EN

回答 2

Stack Overflow用户

发布于 2015-08-05 20:20:05

我认为模板url必须是:

代码语言:javascript
复制
var template = "http://tile.openstreetmap.org/{z}/{x}/{y}.png"

致以问候。

票数 1
EN

Stack Overflow用户

发布于 2015-08-05 20:22:38

我不太明白你想要用这些磁贴来做什么。

不过,您可以通过以下方式获取本地资源的NSURL:

代码语言:javascript
复制
if let tileUrl = NSBundle.mainBundle().URLForResource(ZZZ, withExtension: XXX, subdirectory: YYY)

或者,如果您需要为不同的X/Y/Z/scale动态提供平铺,您可以子类MKTileOverlay并覆盖loadTileAtPath方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31832036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档