您的位置:首页 > 移动开发 > IOS开发

iOS实战项目:属于2个人的地图(共享实时位置,泡妞专用)

2016-07-08 14:17 736 查看
最近放暑假了,在家休息突发奇想做了一个能显示2个人的位置信息的app,可以泡妞用,话不多说,先来看看最终效果图:







一个是真机另一个是模拟器(可以自定义位置),2个用户为user1或user2(这里没有写注册,用户直接在数据库里添加)

项目源代码在最下面。

材料准备:

1.一个网络服务器(测试的话可以先用本地服务器)
2.PHP环境(可以用集成的,如:MAMP,XAMPP等自带了服务器、PHP环境和mysql数据库)
PS:PHP主要是用于把位置信息存到服务器里
3.Xcode(这个不多说)

准备好这些后我们先来分析一下这个实战项目的基本流程:

1.创建数据库(用于存放2个人的位置信息,源代码里有sql文件)
2.写PHP接口(iOS端通过http传位置信息给PHP然后PHP存放到服务器数据库里和获得数据库里对方的位置信息,源代码里也有PHP接口)
3.写iOS端(一共2个界面,登陆界面和地图界面)

1.创建数据库
我用的是MAMP集成了Apache服务器+php环境和mysql。

数据库名为location里面有一张表userLoc



里面有4个字段,(user_id可省) 最后2个字段代表用户的纬度和经度。



然后插入两条数据



到这里 我们的数据库就搭建好了

2.写PHP接口
这里不多说,有2个PHP文件和一个配置文件,主要功能:
(1)把从iOS端传过来的数据存到location数据库里。
(2)把位置信息从数据库里取出来给iOS端。
详情可以看源代码了解。

3.写iOS端

iOS端我讲一下大概的思路,详细内容可以看源代码。
首先是登录界面 只能输入user1或user2(主要用于把位置数据存到数据库)
重点在于地图
第二个界面(也就是地图界面)我放了一个MapView
_mapView.showsUserLocation = YES;//在地图上显示自己的位置


利用CLLocationManager这个类获取自己的位置信息,并且用
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation
*)newLocation fromLocation:(CLLocation *)oldLocation;
这个回调方法把数据GET给PHP
顺便提一下关于http协议我用了AFNetworking这个第三方库,用Get方法把位置信息传给PHP接口。
关于CLLocationManager的用法我参考了http://www.2cto.com/kf/201402/279078.html这篇文章。
这样就可以把自己的位置显示在地图上并且把数据存到数据库了。
接着是获得对方的数据并显示
登陆的时候用到了自己的用户名 这样就可以知道另一个用户名了然后把对方的用户名作为参数GET给PHP接口从而获得另一个用户的位置信息。
然后就可以把这个位置信息显示在地图上了,显示的方法我是用了大头针,
关于如何放置大头针,各位读者可以看http://blog.csdn.net/xyt8023y/article/details/47008203这篇文章。
接着我把大头针自定义了一下(自带的那个太丑)。

做完这些步骤后这个项目就大功告成了。大家只要把PHP文件和数据库存在网络服务里就可以了(本地服务器的话离开了wifi就没用了),把app安装在自己的手机和另一个人的手机上,这样就有了一个属于2个人的地图了。

最后放上项目地址:https://github.com/CaoHan/MyMapDemo

如有任何意见或建议欢迎在下面留言,有任何不足和错误之处也请指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: