热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SwiftMapkit-远离用户位置

如何解决《SwiftMapkit-远离用户位置》经验,为你挑选了1个好方法。

我想显示用户位置和周围区域,但我也希望允许用户在该区域内平移.现在,如果我尝试在地图上的其他位置滚动,它会自动将我带回到基本区域,用户位于中心.我怎么阻止这个?我想在中心显示用户的初始视图,但我希望能够滚动.在此先感谢您们的帮助!

导入UIKit导入MapKit导入CoreLocation

class ViewControllerMain:UIViewController,MKMapViewDelegate,CLLocationManagerDelegate {

@IBOutlet weak var mapView: MKMapView!

var locationManager:CLLocationManager!

override func viewDidLoad() {
    super.viewDidLoad()
    locatiOnManager= CLLocationManager()
    locationManager.requestWhenInUseAuthorization()
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.delegate = self
    locationManager.startUpdatingLocation()
    mapView.showsUserLocation = true
    mapView.delegate = self

    let lOngPress= UILongPressGestureRecognizer(target: self, action: "action:")
    longPress.minimumPressDuration = 1.0
    mapView.addGestureRecognizer(longPress)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    let regiOnToZoom= MKCoordinateRegionMake(manager.location.coordinate, MKCoordinateSpanMake(0.01, 0.01))
    mapView.setRegion(regionToZoom, animated: true)
}

Onato.. 6

您在didUpdateLocations中的代码正在重置该区域.你有两个选择.

    无论您是否已经设置了第一个位置,都要存放在ivar中.只有你没有这样做,然后设置区域.

    设置一个运行15秒的计时器.如果用户移动了地图,则重置计时器.当计时器到期时,您可以重新定位到用户位置.

这将使地图以用户为中心,但会使他们平移一点以获得一些上下文.

这个答案显示了如何在Objective-C中完成它



1> Onato..:

您在didUpdateLocations中的代码正在重置该区域.你有两个选择.

    无论您是否已经设置了第一个位置,都要存放在ivar中.只有你没有这样做,然后设置区域.

    设置一个运行15秒的计时器.如果用户移动了地图,则重置计时器.当计时器到期时,您可以重新定位到用户位置.

这将使地图以用户为中心,但会使他们平移一点以获得一些上下文.

这个答案显示了如何在Objective-C中完成它


推荐阅读
author-avatar
三哥是二姐的三哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有