zoukankan      html  css  js  c++  java
  • 地图显示的步骤

    1.MapKit: 着重与在手机上显示地图,地图上可以显示路线,覆盖层,大头针

    2.如何添加大头针:

    #**需要自定义,因为用户的大头针位置是无法改变

    #**自定义注意点:

    #****要遵守MKAnnotation这个协议

    #****实现这个协议必须实现的方法

    #****可以给协议增加方法,以达到设置这个属性的值

    #**创建大头针

    #**设置经纬度(title, subTitle)

    #**添加到地图上面

    3.大头针的理论基础

    #**操作大头针就是操作大头针数据模型

    #**添加大头针就是添加大头针的数据模型

    #**删除大头针就是删除大头针的数据模型

    4.大头针是如何显示出来的

    #**当将一根大头针的数据模型添加到地图上时,会调用对应的代理方法,在内部创建大头针视图并返回,之后显示在地图上

    #**系统默认的大头针的视图的类型MKPinAnnotationView

    一.代码:01-01(掌握)地图的基本使用(显示类型&地图控制&显示控制)  // POI: point of intreset

    七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK(百度开发平台模块: iOS地图SDK)

    # 1.生成秘钥key: "iA5UyEGFTdQ4iFe6FGdeGryhjPfpUXFm

    # 2.配置inf.plist文件: 01."App Transport Security Settings"&&"Allow Arbitrary Loads"

    #   02."Privacy - Location When In Use Usage Description"--"地图定位测试"

    #       或者"NSLocationAlwaysUsageDescription"--"地图定位测试"

    #   03."Bundle display name"--"$(PRODUCT_NAME)"

    #   04.添加系统以来库: // CoreLocation.framework

    // QuartzCore.framework

    // OpenGLES.framework

    // SystemConfiguration.framework

    // CoreGraphics.framework

    // Security.framework

    // libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework

    // libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)

    #  05.单独引入mapapi.bundle资源文件(在"BaiduMapAPI_Map.framework"中)

    七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK

    #  1.初始化检索对象,并设置BMKPoiSearch 代理

    // 实现代理: 返回POI搜索结果

    //func onGetPoiResult(_ searcher: BMKPoiSearch!, result poiResult: BMKPoiResult!, errorCode: BMKSearchErrorCode) {...}

    /// 当检索到结果的时候会来到的方法

    //当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表

    #  2. 设置BMKMapView代理

    // 实现代理: 长按地图时会回调此接口

    //func mapview(_ mapView: BMKMapView!, onLongClick coordinate: CLLocationCoordinate2D) {...}

    //发起检索

    七.代码: 07-03(了解)导航-方案3-第三方-百度地图-添加大头针

    #  1.设置地图显示区域:

    //let span = BMKCoordinateSpan(...)

    //let region = BMKCoordinateRegion(...)

    //mapView.setRegion(region, animated: true)

    #  2.获取poi列表: poiResult.poiInfoList as? [BMKPoiInfo]

    #  3.添加大头针:

    //let annotaion = BMKPointAnnotation()

    //annotaion.coordinate = poiInfoList.pt

    //annotaion.title = poiInfoList.name

    //annotaion.subtitle = poiInfoList.address

    //mapView.addAnnotation(annotaion)

    七.代码: 07-04(了解)导航-方案3-第三方-百度地图-集成百度导航SDK(百度开发平台模块: iOS导航SDK)

    #   小功能: "双指放大缩小: commamd + option

    #  1.导入BaiduNaviSSDK

    #  2.设置定位服务,并设置代理:

    "lazy var locService : BMKLocationService = {...}()

    #  3.遵守并实现位置服务代理

    // 1.获取用户位置

    // 获取用户一次位置

    "locService.stopUserLocationService()

    // 2.进行导航

    // 节点数组

    "var nodesArray = [BNRoutePlanNode]()

    // 3.起点

    "let startNode = BNRoutePlanNode()

    "nodesArray.append(startNode)

    // 4.终点

    "let endNode = BNRoutePlanNode()

    "nodesArray.append(endNode)

    // 5.发起路径规划

    "BNCoreServices.routePlanService().startNaviRoutePlan(BNRoutePlanMode_Recommend, naviNodes: nodesArray, time: nil, delegete: self, userInfo: nil)

    #  4.遵守并实现算路代理

    // 算路成功回调

    "func routePlanDidFinished(_ userInfo: [AnyHashable : Any]!) {...}

    //路径规划成功,开始导航

    "BNCoreServices.uiService().showPage(BNaviUI_NormalNavi, delegate: nil, extParams: nil)

    完事皆项目,感兴趣可联系我邮箱~hjjuny@163.com
  • 相关阅读:
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    iOS开发UI篇—UIWindow简单介绍
    第三方框架-纯代码布局:Masonry的简单使用
    (转)Foundation-性能优化之NSDateFormatter
    Foundation框架—时间输出格式NSDateFormatter
    物联网MQTT协议分析和开源Mosquitto部署验证
    玩转物联网之MQTT
    Android实现推送方式解决方案
    互联网推送服务原理:长连接+心跳机制(MQTT协议)
    将MySQL数据库转移到SqlServer2008数据库
  • 原文地址:https://www.cnblogs.com/hjjun/p/6084464.html
Copyright © 2011-2022 走看看