分享

iOS开发 CLLocationCoordinate2D 从数组中提取

 玄冰优 2016-07-13

在使用地图的时候,这个CLLocationCoordinate2D进行经纬度的路径的轨迹规划的时候,很是让人头痛。从数组中提取每个model的纬度和经度,传递给CLLocationCoordinate2D,由于使用的是百度地图SDK,就希望在地图上根据每个节点画出运动轨迹。

但是,CLLocationCoordinate2D是一个结构体,必须声明的时候,给定具体的存储空间。
即,需要写成 :
CLLocationCoordinate2D coors[4]={0};
可是,在实际应用的时候,根本不知道接口会传递多少点过来,这个就肯定不能写一个确数。
幸亏,还是有方法的。

写成
CLLocationCoordinate2D *coors = malloc([array count] * sizeof(CLLocationCoordinate2D));

然后,在地图中调用

 BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:count];
 [_mapView addOverlay:polyline];


可以愉快的在地图上画出轨迹图了。

eg:

//画线---直线  
  CLLocationCoordinate2D coors[2] = {0};  
  
//点A  //点B  
coors[0].latitude = 29.196546;  
coors[0].longitude = 114.208226;  
  
coors[1].latitude = 30.196546;  
coors[1].longitude = 120.108226;  
  
//用上面的点数对象数组来初始化一个线段对象  
BMKPolyline *_polyLine = [BMKPolyline polylineWithCoordinates:coors count:2];  
//将线段对象显示在地图中  
[_mapView addOverlay:_polyLine]; 


//多边形
    CLLocationCoordinate2D coor2[5]={0};
    coor2[0].latitude = 41.923213;
    coor2[0].longitude = 112.651795;
    coor2[1].latitude = 41.94382;
    coor2[1].longitude = 116.892372;
    coor2[2].latitude = 40.971137;
    coor2[2].longitude = 114.960656;
    coor2[3].latitude = 40.154248;
    coor2[3].longitude = 114.758286;
    coor2[4].latitude = 41.923213;
    coor2[4].longitude = 112.651795;
     
    BMKPolygon *ploygon2 = [BMKPolygon polygonWithCoordinates:coor2 count:5];
    [_mapView addOverlay:ploygon2];







    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多