swift-使用SWIFT开发地图应用 有个疑问求各位大神帮忙

问题描述

使用SWIFT开发地图应用 有个疑问求各位大神帮忙
    import UIKit

    let APIKey = "456502f40fcce736c5a32fbb397ff19c"

    class MapViewController: UIViewController,UITableViewDelegate,AMapSearchDelegate,MAMapViewDelegate,UIGestureRecognizerDelegate{

        var mapView: MAMapView?
    var isRecording: Bool = false
    var locationButton: UIButton?
    var searchButton: UIButton?
    var imageShare: UIImage?
    var currentRoute: Route?
    var tipView: TipView?
    var statusView: StatusView?
    var search: AMapSearchAPI?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.edgesForExtendedLayout = UIRectEdge.None

        initToolBar()
        initMapView()
       // initTipView()
    }

    override func viewDidAppear(animated: Bool) {

    }

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

    //MARK:- Initialization

    func initMapView() {
        MAMapServices.sharedServices().apiKey=APIKey
        mapView = MAMapView(frame: self.view.bounds)
        mapView!.delegate = self
        self.view.addSubview(mapView!)
        self.view.sendSubviewToBack(mapView!)

        mapView!.showsUserLocation = true
        mapView!.userTrackingMode = MAUserTrackingMode.Follow

        mapView!.distanceFilter = 10.0
        mapView!.desiredAccuracy = kCLLocationAccuracyBestForNavigation
        mapView!.setZoomLevel(15.1, animated: true)
    }

    func initToolBar() {

        let rightButtonItem: UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_list.png"), style: UIBarButtonItemStyle.Bordered, target: self, action: "actionHistory")

        navigationItem.rightBarButtonItem = rightButtonItem

        let leftButtonItem: UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_play.png"), style: UIBarButtonItemStyle.Bordered, target: self, action: "actionRecordAndStop")

        navigationItem.leftBarButtonItem = leftButtonItem

        imageShare = UIImage(named: "location_share@2x.png")

        locationButton = UIButton(frame: CGRectMake(CGRectGetWidth(view.bounds) - 80, CGRectGetHeight(view.bounds) - 120, 60, 60))
        locationButton!.autoresizingMask = UIViewAutoresizing.FlexibleRightMargin | UIViewAutoresizing.FlexibleTopMargin
        locationButton!.backgroundColor = UIColor.whiteColor()
        locationButton!.layer.cornerRadius = 5
        locationButton!.layer.shadowColor = UIColor.blackColor().CGColor
        locationButton!.layer.shadowOffset = CGSizeMake(5, 5)
        locationButton!.layer.shadowRadius = 5
        //locationButton!.tag=mapView!.userLocation.coordinate
        locationButton!.addTarget(self, action: "addPoint:", forControlEvents: UIControlEvents.TouchUpInside)
        locationButton!.setImage(imageShare, forState: UIControlState.Normal)

        view.addSubview(locationButton!)

    }

    func initTipView() {

        tipView = TipView(frame: CGRectMake(0, 0, CGRectGetWidth(view.bounds), 30))
        view.addSubview(tipView!)

        statusView = StatusView(frame: CGRectMake(5, 35, 150, 150))

        statusView!.showStatusInfo(nil)

        view.addSubview(statusView!)

    }

    //MARK:- Actions

    func stopLocationIfNeeded() {
        if !isRecording {
            println("stop location")
            mapView!.setUserTrackingMode(MAUserTrackingMode.None, animated: false)
            mapView!.showsUserLocation = false
        }
    }

    func actionHistory() {
        println("actionHistory")

        let historyController = RecordViewController(nibName: nil, bundle: nil)
        historyController.title = "Records"

        navigationController!.pushViewController(historyController, animated: true)
    }

    func actionRecordAndStop() {
        println("actionRecord")

        isRecording = !isRecording

        if isRecording {

            showTip("Start recording...")
            navigationItem.leftBarButtonItem!.image = UIImage(named: "icon_stop.png")

            if currentRoute == nil {
                currentRoute = Route()
            }

            addLocation(mapView!.userLocation.location)
        }
        else {
            navigationItem.leftBarButtonItem!.image = UIImage(named: "icon_play.png")

            addLocation(mapView!.userLocation.location)
            hideTip()
            saveRoute()
        }

    }

    func addPoint(sender: UIButton) {
       searchReGeocodeWithCoordinate( mapView!.userLocation.coordinate)
    }

    func actionSearch(sender: UIButton) {
        let searchDemoController = SearchViewController(nibName: nil, bundle: nil)
        navigationController!.pushViewController(searchDemoController, animated: true)
    }

    //MARK:- Helpers

    func addLocation(location: CLLocation?) {
        let success = currentRoute!.addLocation(location)
        if success {
            showTip("locations: (currentRoute!.locations.count)")
        }
    }

    func saveRoute() {

        if currentRoute == nil {
            return
        }

        let name = currentRoute!.title()

        let path = FileHelper.recordPathWithName(name)

        NSKeyedArchiver.archiveRootObject(currentRoute!, toFile: path!)

        currentRoute = nil
    }

    func showTip(tip: String?) {
        tipView!.showTip(tip)
    }

    func hideTip() {
        tipView!.hidden = true
    }

    //MARK:- MAMapViewDelegate

    func mapView(mapView: MAMapView , didUpdateUserLocation userLocation: MAUserLocation ) {

    }

    /**
    - (void)mapView:(MAMapView *)mapView didChangeUserTrackingMode:(MAUserTrackingMode)mode animated:(BOOL)animated;
    */
    func mapView(mapView: MAMapView, didChangeUserTrackingMode mode: MAUserTrackingMode, animated: Bool) {
            locationButton?.setImage(imageShare, forState: UIControlState.Normal)
    }

    func searchReGeocodeWithCoordinate(coordinate: CLLocationCoordinate2D!) {
        let regeo: AMapReGeocodeSearchRequest = AMapReGeocodeSearchRequest()

        regeo.location = AMapGeoPoint.locationWithLatitude(CGFloat(coordinate.latitude), longitude: CGFloat(coordinate.longitude))
        //println("regeo :(regeo)")

        self.search!.AMapReGoecodeSearch(regeo)
    }

    //MARK:- AMapSearchDelegate

    func searchRequest(request: AnyObject!, didFailWithError error: NSError!) {
        println("request :(request), error: (error)")
    }

    //    - (void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response
    func onReGeocodeSearchDone(request: AMapReGeocodeSearchRequest, response: AMapReGeocodeSearchResponse) {
        println("request :(request)")
        println("response :(response)")
    }

}

不是已经定义好了mapView么,而且下面也初始化了。为什么在我addPoint按钮点击事件中调用会出错。
求解。。。。

时间: 2024-10-03 03:13:26

swift-使用SWIFT开发地图应用 有个疑问求各位大神帮忙的相关文章

zend-MAC 下用MAMP搭建的PHP开发环境安装ZendGuardLoader不成功,请大神帮忙?

问题描述 MAC 下用MAMP搭建的PHP开发环境安装ZendGuardLoader不成功,请大神帮忙? 网上的搜的教程统统试过了就是不成功. zend_extension="/Applications/MAMP/bin/php/php-5.3.x/ZendGuardLoader.so" zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 感觉这也写的没

上架-swift项目发布问题,求大神帮忙

问题描述 swift项目发布问题,求大神帮忙 证书什么的都已经完成,在archive过程中,到copying swift standard llibrary这一步出错,具体有写couldn't codesign (后面一串路径) 其他都是些无用信息,不知道有大神遇到过没,或者需要我提供哪些信息,帮助判断错误位置

百度地图 定位 标注-IOS 百度地图 标注删除不了?求求大神啊 拜托了

问题描述 IOS 百度地图 标注删除不了?求求大神啊 拜托了 if (!_perList) { _perList=[[PersonalViewController alloc]init]; [self becomeFirstResponder]; CGFloat y=CGRectGetMaxY(_toolBar.frame); CGRect popFrame=CGRectMake(10, y, self.view.frame.size.width-20, self.view.frame.size

接口 百度地图 net-M站(就是手机站)接入百度APP,求各位大神解答

问题描述 M站(就是手机站)接入百度APP,求各位大神解答 最近公司要求在公司做的手机站上接入百度地图,实现导航功能, 我目前接了百度地图极速版的API,但是要求在用户手机上已装百度地图的APP的情况下 直接打开用户的百度地图APP,我在百度地图的接口里并没有找到接入APP的相关接口, 请问各位大神可有解决方案?(注:M站是手机WEB站,不是一个APP) 解决方案 1:首先判断是否安装了百度地图,包名:com.baidu.BaiduMap(不知道有没有更新,这个可以自己去找一下) 2:调用代码

snmp-《Visual C++开发基于SNMP的网络管理软件》 调试不通请大神帮忙

问题描述 <Visual C++开发基于SNMP的网络管理软件> 调试不通请大神帮忙 3C snmp_pp.h:no such file or directory从网上也下载了snmp_pp 的头文件,但是还是不能运行,知道怎么调试的,能不能讲的详细一些 解决方案 缺少snmp_pp.h头文件? 解决方案二: 缺少snmp_pp.h头文件.把它添加到你的工程中,然后Rebuild All一下看看还有没有其他错误 解决方案三: 搜索下这个头文件有没有,如果没有,先下载它,拷贝进去.如果有,那么看

求问大神一条安卓开发的问题

问题描述 求问大神一条安卓开发的问题 我写的一个app,每次打开后占用的内部存储空间都会成倍增长,但是我这只app并没有联网,在运行的时候并没有增加任何数据,只是每次打开时都从数据库里把一些图片,文字读出来并赋值,一开始的时候是2m多,按后退键退出后再打开,然后再退出,占了3m多,然后重复这样打开退出打开退出,每次app的占用内部存储空间都近乎两倍来增长,最后占了57m多的时候,就提示说出现oom了,请问这是怎么回事?为什么我没有往里面添加数据,它都会疯狂增长? 我从数据库里读取数据的时候使用a

adb-[求救向] 请各位大神帮忙解决下吧,有关于安卓开发运行写好的项目的时候出现问题

问题描述 [求救向] 请各位大神帮忙解决下吧,有关于安卓开发运行写好的项目的时候出现问题 错误输出[2015-05-27 17:20:55 - Bluetooth] ------------------------------[2015-05-27 17:20:55 - Bluetooth] Android Launch![2015-05-27 17:20:55 - Bluetooth] The connection to adb is down and a severe error has o

技术-求大神帮忙分许润乾报表或html开发报表功能的优劣不同,谢谢

问题描述 求大神帮忙分许润乾报表或html开发报表功能的优劣不同,谢谢 现在需要开发一个报表模块,有两种方式: 1.调用其他熊也开发好的润乾报表接口,但是本人不会使用润乾报表: 2.直接使用html相关技术进行开发 ,请大神们评价一下这两种方式的优劣,谢谢 了! 解决方案 润乾报表是一个纯JAVA的企业级 报表工具,如果想用就去学吧. 当然,如果你熟悉其中的一个,就不用再考虑,直接使用熟悉的.如果都不熟悉,建议你选择使用方广的,如 HTML,这样网上查资料方便一些.除非你能得到润乾报表的技术支持

vba语言编程-vba求各位大神指导:CAD二次开发vba语言完成一个小程序

问题描述 vba求各位大神指导:CAD二次开发vba语言完成一个小程序 编制一个程序,绘制如图所示的路径图案. 要求: 1.路径两端中点由用户输入 2.路径宽度用户自定 3.图案不出边界: 4.填充的圆形图案在2层,直径为路径宽度的1/5,颜色为兰色 5.路径边界线绘制在1层,为红色. 6.图下写上一行文字,由用户输入. 软件AutoCAD2007,VBA语言编写代码 解决方案 这个应该找文档,CAD文档有说明VBA接口怎么用