十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
上次我们说到在苹果开发者官网查看MapKit文档,下面直接讲解如何加载MapKit的视图及相关的属性。
创新互联公司专注于嵊泗企业网站建设,成都响应式网站建设,成都做商城网站。嵊泗网站建设公司,为嵊泗等地区提供建站服务。全流程按需开发网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
导入系统文件,创建MKMapView对象即可,地图就可以加载了。
CoreLocation.framework
@property (nonatomic,strong)CLLocationManager *locManager;
@property(nonatomic,strong)MKMapView*mapView; ///地图
//申请用户授权
5.///重写 getter
2017年底因公司业务组合部门调整,新的团队部分维护的项目用React Native技术混合开发。为适应环境变化,开启疯狂RN学习之旅,晚上回来啃资料看视频。可能由于本身对RN技术体验不感冒或者在环境之下强迫学习有点不爽。开始寻找代替方案,Fluter像一束曙光引起了我的注意,之后一直关注并利用闲余时间开始探索。2018年一直学习到使用Flutter写项目,从0.2.0开始到现在1.5版本的发布,终于开始慢慢的爬出坑位了,但是因为部分控件感觉还是不如原生控件好用,因而Flutter提供了PlatformView部件。近期因项目中严重使用依赖地图,故而做了Fluterr使用原生IOS高德地图调研。因为我本身是一名android开发人员,初学IOS并记录下来。
PlatformView是 flutter 官方提供的一个可以嵌入 Android 和 iOS 平台原生 view 的小部件。
在我们实际开发中,我们遇到一些 flutter 官方没有提供的插件可以自己创建编写插件来实现部分功能,但是原生View在 flutter 中会遮挡住flutter 中的小部件,比如你想使用高德地图sdk、视频播放器、直播等原生控件,就无法很好的与 flutter 项目结合。
1、info.plist文件设置
2、 ios 端实现原生组件PlatformView提供原生view
3 、ios 端创建PlatformViewFactory用于生成PlatformView
4、 ios 端创建FlutterPlugin用于注册原生组件
5 、flutter 平台嵌入 原生view
iOS端的UiKitView目前还只是preview状态, 默认是不支持的, 需要手动打开开关, 在info.plist文件中新增一行io.flutter.embedded_views_preview为true.
创建类 FlutterMapView 并实现FlutterPlatformView 协议
FlutterMapView.h
FlutterMapView.m
FlutterMapFactory.h
FlutterMapFactory.m
FlutterMapPlugin.h
FlutterMapPlugin.m
请前往 高德开放平台控制台 申请 iOS Key。
注意:Bundle Identifier需要与申请的时候填写的一致
地图依赖的库列举如下:
基础 SDK AMapFoundationKit.framework
第一步:将解压后的MAMapKit.framework 文件 copy 或 拖拽 到工程文件夹中,左侧目录选中工程名,在 TARGETS-Build Phases- Link Binary With Libaries 中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择工程目录下的 MAMapKit.framework 文件添加到工程中。
千万不要忘记将AMapFoundationKit也一起加入工程。
3D地图正确配置应如下图所示:
需要引入的资源文件包括:AMap.bundle,其中:AMap.bundle 在 MAMapKit.framework 包中,AMap.bundle资源文件中存储了定位、默认大头针标注视图等图片,可利用这些资源图片进行开发。
左侧目录中选中工程名,在右键菜单中选择Add Files to “工程名”…,从MAMapKit.framework中选择AMap.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。
成功跑起来 。。 。
App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航。需要用到-
(BOOL)canOpenURL:(NSURL
*)url
NS_AVAILABLE_IOS(3_0);方法判断手机是否已安装相应地图App。
要进行跳转需要先在xcode的plist文件内将目标App的url
Scheme加入白名单(LSApplicationQueriesSchemes)。
”(详情) - 打开苹果地图应用,点击右下角的卷页图标 - 点击“打印”按钮上方的“问题反馈”连接 - 选择要反馈问题的种类,如果列表中并未包含有您要反馈的问题,请您在输入框中输入内容。完成后点击“下一步” - 再次选择所反馈问题的种类,完成后点击“下一步” - 末了,您还可以对该问题进行进一步的评价或描述。完成后点击“发送” 苹果地图应用的工程师们将对您反馈的问题进行分析,并尽可能快地将问题修复。 通过以上方法,您还可以将地图中遗漏的地标、建筑告诉苹果地图应用团队。操作步骤为:在第三步中选择“遗漏的地标/地理位置”,拖动紫色的指针到地标出现的地点,添加正确的描述后即可将信息发送。 设想一下,如果iOS 6的用户每天都使用苹果地图,而且每次都将遇到的问题反馈给苹果地图应用团队,优化苹果地图所花费的时间不就会大大缩短吗?众人拾材火焰高,让我们一起加入到“再一次改变世界”的行列!