如何使用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上有一个很好的写作,你一定要看看.它应该引导您完成您需要知道的一切. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |