iOS实战项目:属于2个人的地图(共享实时位置,泡妞专用)
2016-07-08 14:17
736 查看
最近放暑假了,在家休息突发奇想做了一个能显示2个人的位置信息的app,可以泡妞用,话不多说,先来看看最终效果图:
一个是真机另一个是模拟器(可以自定义位置),2个用户为user1或user2(这里没有写注册,用户直接在数据库里添加)
项目源代码在最下面。
2.PHP环境(可以用集成的,如:MAMP,XAMPP等自带了服务器、PHP环境和mysql数据库)
PS:PHP主要是用于把位置信息存到服务器里
3.Xcode(这个不多说)
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
利用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
如有任何意见或建议欢迎在下面留言,有任何不足和错误之处也请指出。
一个是真机另一个是模拟器(可以自定义位置),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
如有任何意见或建议欢迎在下面留言,有任何不足和错误之处也请指出。
相关文章推荐
- iOS中Quartz Core 图层编程
- iOS绘图之CALayer、遮罩、CAShapeLayer
- ios developer tiny share-20160708
- ios developer tiny share-20160708
- IOS 屏幕快照
- [iOS NSNotifaction通知多次调用] postNotification多次调用问题
- iOS 获取html中的所有图片链接地址
- iOS模态跳转(加导航栏)
- iOS开发(OC)——录音
- JS与Android IOS 交互
- iOS开发(OC)——根据url播放音频
- iOS 设置label button的文字显示几种颜色
- iOS-导航控制器push出来的视图会自动加64高度
- iOS-CoreGraphics学习(彩色图片转灰白图片)
- [iOS]Xcode中警告处理
- iOS开发~CocoaPods使用详细说明
- iOS性能调优系列(全)
- iOS RSA加密和解密
- IOS 使用 CAEmitterLayer实现粒子效果
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备