iOS室内地图篇(快速集成高德地图)
概要
可以利用地图优秀产品高德来帮助自己的室内地图app啦。利用高德地图sdk完成 室内地图 的技术操作。
前步骤
step1 登录高德开发者平台
step2 注册会员,成为开发者
step3 Xcode新建自己的项目,主要是拿到bundle ID
step4 回到高德开发者平台新建应用,主要是拿到即将集成sdk的key
至此,前面步骤做完,接下来就是各种翻阅、学习、动脑费眼去看各种documents了
室内地图SDK v2.1.0接下来就根据高德给的寻宝图去做吧:http://lbs.amap.com/api/ios-indoor-sdk/guide/project/#t1
快速集成
step 1 添加室内地图库
step1.1 在Xcode中选中工程名,在 TARGETS->General->Linked Frameworks and Libraries 中点击“+”按钮
step1.2 “Add Other”按钮,选择解压后的 IndoorMapSDK.framework 文件添加到工程中
step 2 添加系统库
导入其他系统库step 3 导入资源文件IndoorMapSDK.bundle
必须手工导入资源文件,否则地图无法正常加载!
需要将IndoorMapSDK.framework拷贝到demo目录下添加,否则编译找不懂IndoorMapSDK.h文件
以上.完成项目基本配置
关于室内地图操作
1.地图下载:
属性:@property(nonatomic, strong)NSString* key;
方法:下载地图数据、删除数据、获取缓存建筑物列表
2.地图显示:
属性:
@property(nonatomic, strong)NSString* key;
@property(nonatomic, strong)NSString* buildingId;// 建筑物ID
@property(nonatomic)int floorNo;//floor number
@property(nonatomic) BOOL showExtension;//bool是否加载周边数据
方法: 楼层显示、设置建筑物及楼层、加载室内地图、地图加载完成或失败、加载周边数据
3.地图手势:
属性:
@property(nonatomic)BOOL enableTranslate;//移动
@property(nonatomic)BOOL enableScale; //缩放
@property(nonatomic)BOOL enableRotate;//旋倾
@property(nonatomic)BOOL enableIncline; //斜转
@property(nonatomic)BOOL enableClick;//点击
@property(nonatomic, getter=getScaleUnit, setter=setScaleUnit:)float scaleUnit;//当前地图的比例尺
方法:
移动-(int)updateTranslation:(float)x y:(float)y;
缩放-(int)updateScale:(float)scale;
旋转-(int)updateRotation:(float)radian;
倾斜-(int)updateIncline:(float)incline;
放大-(int)zoomIn;
缩小-(int)zoomOut;
重置地图-(int)resetMap;
重置地图位置-(int)resetMapCenter;
重置地图方向-(int)resetMapDirection;
4.设置View中心
-(int)setCoordinateCenter:(float)longitude latitude:(float)latitude;移动地图上的一点到View的中心
-(int)setFeatureCenter:(OIMFeature*)feature;移动指定POI到View中心
-(int)setFeaturesCenter:(NSArray*)features;设置POI缩放比例
5.室内控件属性
@property(nonatomic)BOOL showPlottingScale;//比例尺
@property(nonatomic)BOOL showCompass;//指南针
@property(nonatomic)BOOL showFloorList;// 楼层控件
@property(nonatomic)BOOL showZoomControl;//缩放控件
6.室内搜索
-(NSArray*)searchByKeywords:(NSString*)keywords;//按关键字搜索
-(NSArray*)searchByType:(NSString*)type; //按类型搜索
-(NSArray*)getAllSearchTypes; //按获取所有类型
-(NSArray*)search:(OIMPoint)position byDistance:(float)distance limit:(int)limit; //按距离搜索
7.室内路算
详见http://lbs.amap.com/api/ios-indoor-sdk/guide/indoorroute/#t2
或者开发文档 [高德地图 IOS 室内地图 SDK 开发指南 V2.1.0Beta 20160621.pdf]
8.室内定位
@property(nonatomic)BOOL showLocationPoint; //当前定位点开关
@property(nonatomic) int followingMode;//当前的跟模式
跟模式有三种
- OIMFollowingMode_DontFollow 地图不跟随模式,默认方式,显示动画。- OIMFollowingMode_FollowLocation 地图位置跟随模式,根据定位点的位置移动地图。- OIMFollowingMode_FollowLocationAndDirection 地图位置和方向跟随模式,根据定位点的位置移动地图,同时根据定位给出的
设置当前定位点
-(int)setLocationPoint:(OIMPoint)point orientation:(float)orientation accuracy:(float)accuracy;
关于lndoor的参考手册:
http://a.amap.com/lbs/static/unzip/iOS_Indoormap_Doc/classes.html
相关下载:http://lbs.amap.com/api/ios-indoor-sdk/download/
以上. 整理完主要是为了熟悉和方便以后快速集成和查询(主要还是喜欢自己的套路啊). 大体浏览后就可以去着手demo和集成sdk到自己app中了。
The end