重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航。需要用到- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);方法判断手机是否已安装相应地图App。
创新互联建站主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务巴东,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
要进行跳转需要先在xcode的plist文件内将目标App的url Scheme加入白名单(LSApplicationQueriesSchemes)。
1、下载iOS地图SDK的最新版本
2、申请LBS密钥(见第二部分)。
3、xCode新建工程
新建一个 Single View Application 工程。注意:Language 选择 Swift
4、工程配置
a. 引入地图库搜索库
左侧目录中选中工程名,在 TARGETS-Build Phases- Link Binary With Libaries 中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择解压后的 MAMapKit.framework 文件添加到工程中。
搜索库的添加方法同上。
b.引入AMap.bundle资源文件
AMap.bundle资源文件中存储了定位、默认大头针标注视图等图片,可利用这些资源图片进行开发。
左侧目录中选中工程名,在右键菜单中选择Add Files to “工程名”…,从 MAMapKit.framework-Resources 文件夹中选择 AMap.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
c.引入系统库
左侧目录中选中工程名,在TARGETS-Build Settings- Link Binary With Libaries中点击“+”按钮,在弹出的窗口中查找并选择所需的库(见下表),单击“Add”按钮,将库文件添加到工程中。
说明:
备注中,2D表示使用2D栅格地图需要的系统文件,3D表示使用3D矢量地图需要的系统文件、Search表示使用搜索库需要的系统文件。
SystemConfiguration.framework、CoreTelephonySecurity.framework、Security.framework 是为了统计app信息使用。
d.Swift编译配置
首先:新建桥接头文件(放在工程路径下),这里命名为 AMapDemoSwift-Bridging-Header.h,在该头文件中import需要的库文件,代码如下:
#import MAMapKit/MAMapKit.h
#import AMapSearchKit/AMapSearchAPI.h
然后,左侧目录中选中工程名,在 TARGETS-Build Phases- Swift Compiler - Code Generation - Objective-C Briding Header 中输入桥接文件的路径
5、地图的显示
以3D矢量地图SDK为例,进行介绍。
在 ViewController.swift 中,继承 MAMapViewDelegate 协议,在 viewDidLoad 方法中配置用户Key,初始化 MAMapView 对象,并添加到 Subview中。代码如下:
let APIKey = "8a1383b14466a8dbf362f44357c496c0"
class ViewController: UIViewController , MAMapViewDelegate{
var mapView:MAMapView?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// 配置用户Key
MAMapServices.sharedServices().apiKey = APIKey
// 初始化MAMapView
initMapView()
}
func initMapView(){
mapView = MAMapView(frame: self.view.bounds)
mapView!.delegate = self
self.view.addSubview(mapView!)
}
}
运行程序,地图显示出来了,就是这样简单~
首先讲一下原理,我们通过修改备份数据里的地图数据来,来使自带地图增加一个虚拟定位的按钮来实现的。本方法支持iOS7-iOS10所有设备。虚拟定位完了后位置是固定死的,不会随手机移动而移动的。若要恢复真实定位重启手机即可;此定位支持任何第三方App。
操作方法:
1、下载并安装爱思助手,将手机连接爱思助手之后,点击“设备信息”中的“备份/恢复”,点击“全备份”将手机备份(什么是全备份?);
2、备份完成后,点击上图“备份恢复”界面的“全备份文件管理”,找到刚才备份的的数据,选择之后点击“立即查看”;
3、在备份查看器打开后,往下拉找到AppDomain-com.apple.Maps这个文件夹,双击打开;
4、然后依次打开Library/Preferences,可以看到里面的com.apple.Maps.plist文件,双击打开;
5、弹出如下界面,页面拖到最下方,看到两行代码和,把以下代码写在这两行上面:
__internal__PlaceCardLocationSimulation
以上代码可以直接复制粘贴,如下图对齐;修改完毕之后点击左上角“保存”;
6、接下来只要把修改后的备份还原到手机就可以了;点击“备份/恢复”界面的“全恢复数据”,选择刚才修改的备份,点击“立即恢复”,等待进度条完成,手机重启,大功告成;
7、打开手机的地图搜索你想要的地址查看,最下方会出现Simulate Location这个选项,点击以后即完成伪装;之后打开所有APP的定位都将是此虚拟位置。
使用百度地图 sdk 定位包啊
现在百度地图把 地图sdk 和 定位sdk 分开了,你需要分别添加到项目里去。