继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

iOS开发-在地图上绘制运行轨迹

凤凰求蛊
关注TA
已关注
手记 60
粉丝 9
获赞 15

   iOS中的MapKit集成了google地图api的很多功能加上iOS的定位的功能,我们就可以实现将你运行的轨迹绘制到地图上面。这个功能非常有用,比如汽车的gprs追踪、人员追踪、快递追踪等等。这篇文章我们将使用Map Kit和iOS的定位功能,将你的运行轨迹绘制在地图上面。

实现

   在之前的一篇文章:iOS开发之在google地图上显示自己的位置中描述了如何在地图上显示自己的位置,如果我们将这些位置先保存起来,然后串联起来绘制到地图上面,那就是我们的运行轨迹了。

    首先我们看下如何在地图上绘制曲线。在Map Kit中提供了一个叫MKPolyline的类,我们可以利用它来绘制曲线,先看个简单的例子。

    使用下面代码从一个文件中读取出经纬度,然后创建一个路径:MKPolyline实例。

复制代码

free(pointArr);

}

复制代码

将这个路径MKPolyline对象添加到地图上

[self.mapView addOverlay:self.routeLine];

显示在地图上:

复制代码

 overlayView;

}

复制代码

看下从文件中读取数据绘制的轨迹路径效果:

然后我们在从文件中读取位置的方法改成从用gprs等方法获取当前位置。

第一步:创建一个CLLocationManager实例第二步:设置CLLocationManager实例委托和精度第三步:设置距离筛选器distanceFilter第四步:启动请求代码如下:复制代码

;
    [locationMgr startUpdatingLocation];
    
    
}

复制代码

上面的代码我定义了一个数组,用于保存运行轨迹的经纬度。

每次通知更新当前位置的时候,我们将当前位置的经纬度放到这个数组中,并重新绘制路径,代码如下:

复制代码

    [self zoomInOnRoute];
         
}

复制代码

我们将前面从文件获取经纬度创建轨迹的代码修改成从这个数组中取值就行了:

复制代码

 southWestPoint.y);
    
    free(pointArr);
    
}

复制代码

这样我们就将我们运行得轨迹绘制google地图上面了。

扩展:

    如果你想使用其他的地图,比如百度地图,其实也很方便。可以将百度地图放置到UIWebView中间,通过iOS开发之Objective-C与JavaScript的交互 这篇文章的方法,用js去绘制轨迹。

总结这篇文章我们介绍了一种常见的技术实现:在地图上绘制出你运行的轨迹。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP