RangeRadiusMKMapView 0.1.2

RangeRadiusMKMapView 0.1.2

Carlos Correia维护。



RangeRadiusMKMapView

CI Status Version License Platform

这个Pod允许在自定义的MKMapView的子类中轻松集成可滑动的CircleOverlay。这个库100%是用Swift编写的,并从ResizableMKCircleOverlay(用Objective-C编写)中受到启发(部分重写)。

alt text

示例

要运行示例项目,请克隆仓库,然后首先从示例目录中运行pod install

简单使用

重要提示:RangeRadiusMKMapView默认遵从MKMapViewDelegate;如果您想自己遵从它,请详细阅读以下内容。

查看ViewController示例以获取初始化细节。

使用范围(可调整大小的CircleOverlay)设置半径

 //DEFAULT_COORDINATE is a CLLocationCoordinate2D instance
  self.mapView.setRadiusWithRange(centerCoordinate: DEFAULT_COORDINATE, startRadius: 200, minRadius: 100, maxRadius: 4000)
 
 //this value is active by default - if not, the user can't change the radius
 self.mapView.rangeIsActive = true

获取半径信息

需要在一个位置符合 MKRadiusDelegate,并在初始化 RangeRadiusMKMapView 时传递引用代理

	 self.mapView = RangeRadiusMKMapView(frame: .zero, delegate: self)
extension ViewController : MKRadiusDelegate {
    func onRadiusChange(_ radius: Double) {
    	//From the example app
       	self.setRangeTitle(radius)
   	}
 }

设置自定义 UI 属性并拥有自己的 MKMapViewDelegate

按照设计,最好并更有用拥有自己的类来符合 MKMapViewDelegate(RangeRadiusMKMapView 默认符合它),以处理更多有趣的事件,而不仅仅是单独的覆盖渲染 - 这就是使用这个 MKMapView 子类时所发生的事情。要能够自定义覆盖层(半径范围),您需要符合 MKMapViewDelegate 并实现 mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) 函数

	 self.mapView.delegate = self
extension ViewController : MKMapViewDelegate {
    func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
       	let properties = RangeRadiusProperties(fillColor: UIColor.red, alpha: 0.5, border: 50, borderColor: UIColor.black)
       	return self.mapView.getRenderer(from: overlay, properties: properties)
   	}
}

安装

RangeRadiusMKMapView 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'RangeRadiusMKMapView'

作者

carlosmouracorreia,[email& protectsig;hnmurlj]@[email& protectsig;hmnlr.cn]

许可

RangeRadiusMKMapView 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。