Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 缩放以适合用户位置和注释地图视图_Swift_Mkmapview_Zooming_Rect - Fatal编程技术网

Swift 缩放以适合用户位置和注释地图视图

Swift 缩放以适合用户位置和注释地图视图,swift,mkmapview,zooming,rect,Swift,Mkmapview,Zooming,Rect,“我的地图视图”显示了目标壁画的用户位置和注释,但缩放已关闭。如何根据当前位置和目标注释之间的距离和居中程度调整其比例以适应它们 这就是它的缩放方式(如此之远) 您可以使用“func setRegion(u”region:MKCoordinateRegion,animated:Bool)”。MKCoordinateRegion有一个中心,还定义了该区域的跨度。这里的中心可以是距离用户位置和目的地等距离的点。您可以相应地决定跨度。let latSpan=muralocation.userLoca

“我的地图视图”显示了目标壁画的用户位置和注释,但缩放已关闭。如何根据当前位置和目标注释之间的距离和居中程度调整其比例以适应它们

这就是它的缩放方式(如此之远)


您可以使用“func setRegion(u”region:MKCoordinateRegion,animated:Bool)”。MKCoordinateRegion有一个中心,还定义了该区域的跨度。这里的中心可以是距离用户位置和目的地等距离的点。您可以相应地决定跨度。

let latSpan=muralocation.userLocation.coordinate.latitude-coordinates.latitude let longSpan=muralocation.userLocation.coordinate.longitude-coordinates.longitude变量map=MKCoordinateRegion()let span=MKCoordinateSpanMake(latSpan,longSpan)map.center=muralocation.userLocation.coordinate map.span=spanI执行此操作,但地图缩放没有移动。。。有什么帮助吗?
func mapPoints(){
    let annotations = MKPointAnnotation()

    annotations.title = muralModel.muralName!

    muralModel.getMainArtistModel(completion: { (anArtistModel) in
        annotations.subtitle  = " \(anArtistModel!.firstName!) \(anArtistModel!.lastName!)"
    })

    annotations.coordinate = coordinates

    muralLocation.addAnnotation(annotations)

    self.muralLocation.showsUserLocation = true

    var zoomRect: MKMapRect = MKMapRectNull
    let mapEdgePadding = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)

    //convert CLLocationCoordinate2D to MKMapPointForCoordinate so you don't end up in Bering Sea
    let userPoint = MKMapPointForCoordinate(muralLocation.userLocation.coordinate)
    let destinationPoint = MKMapPointForCoordinate(coordinates)

    let userPointRect = MKMapRectMake(userPoint.x, userPoint.y, 0.1, 0.1)
    let destinationPointRect = MKMapRectMake(destinationPoint.x, destinationPoint.y, 0.1, 0.1)

    zoomRect = userPointRect
    zoomRect = MKMapRectUnion(zoomRect, destinationPointRect)

    muralLocation.setVisibleMapRect(zoomRect, edgePadding: mapEdgePadding, animated: true)
}