显示地图

作者: 轻云绿原 | 来源:发表于2017-04-18 17:25 被阅读40次

    理解几何地图

    在地图上你要怎么表示点的数据依赖于你想要怎么使用它们.Map Kit支持以下三种基础坐标来表示特定的地图上的点数据:

    • map coordinate(地图坐标):是一种用经纬度来表示的坐标.用CLLocationCoordinate2D结构.你可以用MKCoordinateSpanMKCoordinateRegion结构来表示区域.
    • map point(地图点):墨卡托地图投影上x和y的值.map point用于许多地图相关的计算,而不是地图坐标,因为它们简化了计算中涉及的数学。在你的app里,您主要在指定自定义地图叠加层的形状和位置时使用地图点。你可以用MKMapPoint结构来表示一个单独的map point.你可以用MKMapSizeMKMapRect结构来表示一个区域.
    • Point是和坐标系统相关联的view对象上的平面单位.Map PointMap Coordinates在显示自定义内容前都必须转成Points.用CGPoint结构表示一个单独的点,用CGSizeCGRect来表示一个区域.

    坐标系统之间的转换

    当你需要时你可以两种坐标系统之间进行转换,比如你要加自定义的覆盖物(overlays)(路线什么的).你要map coordinate转成map point

    Convert from Convert to Conversion routines
    Map coordinates Points convertCoordinate:toPointToView: (MKMapView),convertRegion:toRectToView: (MKMapView)
    Map coordinates Map points MKMapPointForCoordinate
    Map points Map coordinates MKCoordinateForMapPoint,MKCoordinateRegionForMapRect
    Map points Points pointForMapPoint: (MKOverlayRenderer),rectForMapRect: (MKOverlayRenderer)
    Points Map coordinates convertPoint:toCoordinateFromView: (MKMapView),convertRect:toRegionFromView: (MKMapView)
    Points Map points mapPointForPoint: (MKOverlayRenderer),mapRectForRect: (MKOverlayRenderer)

    把Map view加到用户界面上.

    MKMapView一个独立的用于展示地图数据的界面.它能提供展示地图数据,管理用户交互和托管自定义内容.决不要把MKMapView作为父类.
    你可以像用普通view一样使用MKMapView.任何加到MKMapView上的子view都会以frame固定住,不会随着地图一样滚动.如果你希望你到到地图上的view也随着地图滚动,你必须使用annotationsoverlays(比如:导航的路线).

    配置地图属性

    MKMapView类有多个你可以配置的属性.这些属性控制了一些重要的信息,比如当前显示的是哪部分的地图,是否显示3D内容,用户的交互是否允许.

    设置地图的显示区域

    MKMapViewregion属性控制了地图的当前显示区域.当一个地图刚被创建时,它的显示区域通常是尽可能大的区域.

    typedef struct {
       CLLocationCoordinate2D center;
       MKCoordinateSpan span;
    } MKCoordinateRegion;
    

    span定义了多大的范围是可见的.它类似于矩形的宽和高,不过它是用度,分,秒来表示的.如果,你指定了一具特定的距离,可以用MKCoordinateRegionMakeWithDistance来创建一个区域数据结构(用"米"来表示,而不是度).
    你赋值给region属性的值,通常和最终存在这个属性里的值是不一样的.

    显示3D地图

    一定要检查一下pitchEnabled属性,看一下是否支持3D.

    一个camera对象用以下属性来定义一个3D地图的显示:

    • Altitude(海拔).camera离地表的高度(以米计算).
    • Pitch(斜度).0的pitch代表的是标准的2D地图,camera是垂直向下看.
    • heading.camera的朝向.
    • center.

    .....

    相关文章

      网友评论

        本文标题:显示地图

        本文链接:https://www.haomeiwen.com/subject/ivqqzttx.html