加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用swift在IOS地图上叠加图像

发布时间:2020-12-14 02:27:19 所属栏目:百科 来源:网络整理
导读:我试图找出如何使用SWIFT在 IOS地图上叠加图像.我创建了以下代码,使用地图工具包覆盖地图上的绿色圆圈.我想用矩形图像替换绿色圆圈tOver.png 500,500我是iOS开发新手并且很快.到目前为止,我找不到一个快速的例子或好的资源. //// ViewController.swift// map
我试图找出如何使用SWIFT在 IOS地图上叠加图像.我创建了以下代码,使用地图工具包覆盖地图上的绿色圆圈.我想用矩形图像替换绿色圆圈tOver.png 500,500我是iOS开发新手并且很快.到目前为止,我找不到一个快速的例子或好的资源.
//
//  ViewController.swift
//  mapoverlaytest
//

import UIKit
import MapKit


class ViewController: UIViewController,MKMapViewDelegate {
    @IBOutlet weak var mapView: MKMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.mapView.delegate = self;
        let location = CLLocationCoordinate2D(
            latitude: 51.50007773,longitude: -0.1246402
        )

        let span = MKCoordinateSpanMake(0.05,0.05)
        let region = MKCoordinateRegion(center: location,span: span)

        mapView.setRegion(region,animated: true)

        let annotation = MKPointAnnotation()
        annotation.setCoordinate(location)
        annotation.title = "Big Ben"
        annotation.subtitle = "London"



        var overlay = MKCircle (centerCoordinate: location,radius: 500)

        mapView.addOverlay(overlay)

        mapView.addAnnotation(annotation)

    }

    func mapView(
        mapView: MKMapView!,rendererForOverlay
        overlay: MKOverlay!) -> MKOverlayRenderer! {
            if (overlay.isKindOfClass(MKCircle))
            {
                var circleRenderer = MKCircleRenderer(overlay: overlay)
                circleRenderer.strokeColor = UIColor.greenColor()
                circleRenderer.fillColor = UIColor(
                    red: 0,green: 1.0,blue: 0,alpha: 0.5)

                return circleRenderer
            }
            return nil
    }

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

}
正如Totem解释的那样,如果符合您的目的,使用图像注释而不是叠加会更简单.但是,根据您要使用此图像的内容,它可能无法正常工作.地图叠加和地图注释之间的主要区别在于,当您缩放地图(如图钉)时,注释会保持相同的大小,并且叠加会随着地图的大小而变化(如标记建筑物).如果您希望图像使用地图进行缩放,则会变得更复杂一些.

您将需要创建一个新的MKOverlayRenderer子类来绘制图像.您必须通过继承drawMapRect(mapRect,zoomScale,inContext)函数将图像自己绘制到图像上下文中.在创建这个子类之后,你可以在自定义子类中替换MKCircleRenderer,你应该好好去.

在Raywenderlich.com上有一个很好的写作,你一定要看看.它应该引导您完成您需要知道的一切.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读