Initial commit

This commit is contained in:
ifish
2017-08-15 16:59:01 +08:00
commit bdc83e07ef
5766 changed files with 423223 additions and 0 deletions
@@ -0,0 +1,36 @@
//
// BMKFavPoiInfo.h
// UtilsComponent
//
// Created by wzy on 15/4/8.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKFavPoiInfo_h
#define UtilsComponent_BMKFavPoiInfo_h
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
///收藏点信息类
@interface BMKFavPoiInfo : NSObject
///数据ID,自动生成
@property (nonatomic, strong) NSString* favId;
///poi名称(添加或更新时,必须有)
@property (nonatomic, strong) NSString* poiName;
///poi点Uid
@property (nonatomic, strong) NSString* poiUid;
///poi坐标(添加或更新时,必须有)
@property (nonatomic, assign) CLLocationCoordinate2D pt;
///poi地址
@property (nonatomic, strong) NSString* address;
///城市名称
@property (nonatomic, strong) NSString* cityName;
///添加或最后修改时间戳
@property (nonatomic, assign) NSUInteger timeStamp;
@end
#endif
@@ -0,0 +1,60 @@
//
// BMKFavPoiManager.h
// UtilsComponent
//
// Created by wzy on 15/4/9.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKFavPoiManager_h
#define UtilsComponent_BMKFavPoiManager_h
#import "BMKFavPoiInfo.h"
///收藏点管理类
@interface BMKFavPoiManager : NSObject
/**
* 添加一个poi点
* @param favPoiInfo 点信息,in/out,输出包含favId和添加时间
* @return -2:收藏夹已满,-1:名称为空,0:添加失败,1:添加成功
*/
- (NSInteger)addFavPoi:(BMKFavPoiInfo*) favPoiInfo;
/**
* 获取一个收藏点信息
* @param favId 添加时返回的favId,也可通过getAllFavPois获取的信息中BMKFavPoiInfo的属性favId
* @return 收藏点信息,没有返回nil
*/
- (BMKFavPoiInfo*)getFavPoi:(NSString*) favId;
/**
* 获取所有收藏点信息
* @return 点信息数组
*/
- (NSArray*)getAllFavPois;
/**
* 更新一个收藏点
* @param favId 添加时返回的favId,也可通过getAllFavPois获取的信息中BMKFavPoiInfo的属性favId
* @param favPoiInfo 点信息,in/out,输出包含修改时间
* @return 成功返回YES,失败返回NO
*/
- (BOOL)updateFavPoi:(NSString*) favId favPoiInfo:(BMKFavPoiInfo*) favPoiInfo;
/**
* 删除一个收藏点
* @param favId 添加时返回的favId,也可通过getAllFavPois获取的信息中BMKFavPoiInfo的属性favId
* @return 成功返回YES,失败返回NO
*/
- (BOOL)deleteFavPoi:(NSString*) favId;
/**
* 清空所有收藏点
* @return 成功返回YES,失败返回NO
*/
- (BOOL)clearAllFavPois;
@end
#endif
@@ -0,0 +1,420 @@
/* BMKGeometry.h
* BMapKit
*
* Copyright 2011 Baidu Inc. All rights reserved.
*
*/
#import <BaiduMapAPI_Base/BMKTypes.h>
#import <UIKit/UIKit.h>
/**
*构造BMKCoordinateSpan对象
*@param latitudeDelta 纬度方向的变化量
*@param longitudeDelta 经度方向的变化量
*@return 根据指定参数生成的BMKCoordinateSpan对象
*/
UIKIT_STATIC_INLINE BMKCoordinateSpan BMKCoordinateSpanMake(CLLocationDegrees latitudeDelta, CLLocationDegrees longitudeDelta)
{
BMKCoordinateSpan span;
span.latitudeDelta = latitudeDelta;
span.longitudeDelta = longitudeDelta;
return span;
}
/**
*构造BMKCoordinateRegion对象
*@param centerCoordinate 中心点经纬度坐标
*@param span 经纬度的范围
*@return 根据指定参数生成的BMKCoordinateRegion对象
*/
UIKIT_STATIC_INLINE BMKCoordinateRegion BMKCoordinateRegionMake(CLLocationCoordinate2D centerCoordinate, BMKCoordinateSpan span)
{
BMKCoordinateRegion region;
region.center = centerCoordinate;
region.span = span;
return region;
}
/**
*根据中心点和距离生成BMKCoordinateRegion
*@param centerCoordinate 中心点坐标
*@param latitudinalMeters 纬度方向的距离范围,单位:米
*@param longitudinalMeters 经度方向的距离范围,单位:米
*@return 根据中心点和距离生成BMKCoordinateRegion
*/
UIKIT_EXTERN BMKCoordinateRegion BMKCoordinateRegionMakeWithDistance(CLLocationCoordinate2D centerCoordinate, CLLocationDistance latitudinalMeters, CLLocationDistance longitudinalMeters);
/**
*将经纬度坐标转换为投影后的直角地理坐标
*@param coordinate 待转换的经纬度坐标
*@return 转换后的直角地理坐标
*/
UIKIT_EXTERN BMKMapPoint BMKMapPointForCoordinate(CLLocationCoordinate2D coordinate);
/**
*将投影后的直角地理坐标转换为经纬度坐标
*@param mapPoint 投影后的直角地理坐标
*@return 转换后的经纬度坐标
*/
UIKIT_EXTERN CLLocationCoordinate2D BMKCoordinateForMapPoint(BMKMapPoint mapPoint);
/**
*计算在指定纬度下一个BMKMapPoint单位对应的米数
*@param latitude 指定的纬度
*@return 在指定纬度下一个BMKMapPoint单位对应的米数
*/
UIKIT_EXTERN CLLocationDistance BMKMetersPerMapPointAtLatitude(CLLocationDegrees latitude);
/**
*计算在指定纬度下一米对应的MKMapPoint的单位数
*@param latitude 指定的纬度
*@return 在指定纬度下一米对应的MKMapPoint的单位数
*/
UIKIT_EXTERN double BMKMapPointsPerMeterAtLatitude(CLLocationDegrees latitude);
/**
*计算指定两点之间的距离
*@param a 第一个坐标点
*@param b 第二个坐标点
*@return 两点之间的距离,单位:米
*/
UIKIT_EXTERN CLLocationDistance BMKMetersBetweenMapPoints(BMKMapPoint a, BMKMapPoint b);
/**
*构造BMKMapPoint对象
*@param x 水平方向的坐标值
*@param y 垂直方向的坐标值
*@return 根据指定参数生成的BMKMapPoint对象
*/
UIKIT_STATIC_INLINE BMKMapPoint BMKMapPointMake(double x, double y) {
return (BMKMapPoint){x, y};
}
/**
*构造BMKMapSize对象
*@param width 宽度
*@param height 高度
*@return 根据指定参数生成的BMKMapSize对象
*/
UIKIT_STATIC_INLINE BMKMapSize BMKMapSizeMake(double width, double height) {
return (BMKMapSize){width, height};
}
/**
*构造BMKMapRect对象
*@param x 矩形左上顶点的x坐标值
*@param y 矩形左上顶点的y坐标值
*@param width 矩形宽度
*@param height 矩形高度
*@return 根据指定参数生成的BMKMapRect对象
*/
UIKIT_STATIC_INLINE BMKMapRect BMKMapRectMake(double x, double y, double width, double height) {
return (BMKMapRect){ BMKMapPointMake(x, y), BMKMapSizeMake(width, height)};
}
/**
*获取指定矩形的x轴坐标最小值
*@param rect 指定的矩形
*@return x轴坐标最小值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMinX(BMKMapRect rect) {
return rect.origin.x;
}
/**
*获取指定矩形的y轴坐标最小值
*@param rect 指定的矩形
*@return y轴坐标最小值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMinY(BMKMapRect rect) {
return rect.origin.y;
}
/**
*获取指定矩形在x轴中点的坐标值
*@param rect 指定的矩形
*@return x轴中点的坐标值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMidX(BMKMapRect rect) {
return rect.origin.x + rect.size.width / 2.0;
}
/**
*获取指定矩形在y轴中点的坐标值
*@param rect 指定的矩形
*@return y轴中点的坐标值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMidY(BMKMapRect rect) {
return rect.origin.y + rect.size.height / 2.0;
}
/**
*获取指定矩形的x轴坐标最大值
*@param rect 指定的矩形
*@return x轴坐标最大值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMaxX(BMKMapRect rect) {
return rect.origin.x + rect.size.width;
}
/**
*获取指定矩形的y轴坐标最大值
*@param rect 指定的矩形
*@return y轴坐标最大值
*/
UIKIT_STATIC_INLINE double BMKMapRectGetMaxY(BMKMapRect rect) {
return rect.origin.y + rect.size.height;
}
/**
*获取指定矩形的宽度
*@param rect 指定的矩形
*@return 指定矩形的宽度
*/
UIKIT_STATIC_INLINE double BMKMapRectGetWidth(BMKMapRect rect) {
return rect.size.width;
}
/**
*获取指定矩形的高度
*@param rect 指定的矩形
*@return 指定矩形的高度
*/
UIKIT_STATIC_INLINE double BMKMapRectGetHeight(BMKMapRect rect) {
return rect.size.height;
}
/**
*判断两个点是否相等
*@param point1 第一个点
*@param point2 第二个点
*@return 如果两点相等,返回YES,否则返回NO
*/
UIKIT_STATIC_INLINE BOOL BMKMapPointEqualToPoint(BMKMapPoint point1, BMKMapPoint point2) {
return point1.x == point2.x && point1.y == point2.y;
}
/**
*判断两个矩形范围是否相等
*@param size1 范围1
*@param size2 范围2
*@return 如果相等,返回YES,否则返回NO
*/
UIKIT_STATIC_INLINE BOOL BMKMapSizeEqualToSize(BMKMapSize size1, BMKMapSize size2) {
return size1.width == size2.width && size1.height == size2.height;
}
/**
*判断两个矩形是否相等
*@param rect1 矩形1
*@param rect2 矩形2
*@return 如果相等,返回YES,否则返回NO
*/
UIKIT_STATIC_INLINE BOOL BMKMapRectEqualToRect(BMKMapRect rect1, BMKMapRect rect2) {
return
BMKMapPointEqualToPoint(rect1.origin, rect2.origin) &&
BMKMapSizeEqualToSize(rect1.size, rect2.size);
}
/**
*判断指定矩形是否为NULL
*@param rect 指定矩形
*@return 如果矩形为NULL,返回YES,否则返回NO
*/
UIKIT_STATIC_INLINE BOOL BMKMapRectIsNull(BMKMapRect rect) {
return isinf(rect.origin.x) || isinf(rect.origin.y);
}
/**
*判断一个矩形是否为空矩形
*@param rect 指定矩形
*@return 如果矩形为空矩形,返回YES,否则返回NO
*/
UIKIT_STATIC_INLINE BOOL BMKMapRectIsEmpty(BMKMapRect rect) {
return BMKMapRectIsNull(rect) || (rect.size.width == 0.0 && rect.size.height == 0.0);
}
/**
*将BMKMapPoint格式化为字符串
*@param point 指定的标点
*@return 返回转换后的字符串
*/
UIKIT_STATIC_INLINE NSString *BMKStringFromMapPoint(BMKMapPoint point) {
return [NSString stringWithFormat:@"{%.1f, %.1f}", point.x, point.y];
}
/**
*将BMKMapSize格式化为字符串
*@param size 指定的size
*@return 返回转换后的字符串
*/
UIKIT_STATIC_INLINE NSString *BMKStringFromMapSize(BMKMapSize size) {
return [NSString stringWithFormat:@"{%.1f, %.1f}", size.width, size.height];
}
/**
*将BMKMapRect格式化为字符串
*@param rect 指定的rect
*@return 返回转换后的字符串
*/
UIKIT_STATIC_INLINE NSString *BMKStringFromMapRect(BMKMapRect rect) {
return [NSString stringWithFormat:@"{%@, %@}", BMKStringFromMapPoint(rect.origin), BMKStringFromMapSize(rect.size)];
}
/**
*计算两个矩形的并集
*@param rect1 矩形1
*@param rect2 矩形2
*@return 两个矩形的并集
*/
UIKIT_EXTERN BMKMapRect BMKMapRectUnion(BMKMapRect rect1, BMKMapRect rect2);
/**
*计算两个矩形的交集
*@param rect1 矩形1
*@param rect2 矩形2
*@return 两个矩形的交集
*/
UIKIT_EXTERN BMKMapRect BMKMapRectIntersection(BMKMapRect rect1, BMKMapRect rect2);
/**
*将矩形向内缩小dxdy大小
*@param rect 指定的矩形
*@param dx x轴的变化量
*@param dy y轴的变化量
*@return 调整后的矩形
*/
UIKIT_EXTERN BMKMapRect BMKMapRectInset(BMKMapRect rect, double dx, double dy);
/**
*将矩形原点偏移指定大小
*@param rect 指定的矩形
*@param dx x轴的偏移量
*@param dy y轴的偏移量
*@return 调整后的矩形
*/
UIKIT_EXTERN BMKMapRect BMKMapRectOffset(BMKMapRect rect, double dx, double dy);
/**
*矩形分割,将一个矩形分割为两个矩形
*@param rect 待分割的矩形
*@param slice 指针,用来保存分割后被移除的矩形
*@param remainder 指针,用来保存分割后剩下的矩形
*@param amount 指定分割的大小,如果设置为负数,则将自动调整为0
*@param edge 用来指定要从那条边开始分割
*/
UIKIT_EXTERN void BMKMapRectDivide(BMKMapRect rect, BMKMapRect *slice, BMKMapRect *remainder, double amount, CGRectEdge edge);
/**
*判断指定点是否在某矩形内
*@param rect 指定的矩形
*@param point 指定的点
*@return 如果包含,返回YES,否则,返回NO
*/
UIKIT_EXTERN BOOL BMKMapRectContainsPoint(BMKMapRect rect, BMKMapPoint point);
/**
*判断矩形rect1是否包含矩形rect2
*@param rect1 矩形1
*@param rect2 矩形2
*@return 如果包含,返回YES,否则,返回NO
*/
UIKIT_EXTERN BOOL BMKMapRectContainsRect(BMKMapRect rect1, BMKMapRect rect2);
/**
*判断两矩形是否相交
*@param rect1 矩形1
*@param rect2 矩形2
*@return 如果相交,返回YES,否则,返回NO
*/
UIKIT_EXTERN BOOL BMKMapRectIntersectsRect(BMKMapRect rect1, BMKMapRect rect2);
/**
*将投影后的直角坐标矩形转换为泳经纬度表示的范围
*@param rect 待转换的直角坐标矩形
*@return 转换后的经纬度范围
*/
UIKIT_EXTERN BMKCoordinateRegion BMKCoordinateRegionForMapRect(BMKMapRect rect);
/**
*判断指定的直角坐标矩形是否跨越了180度经线
*@param rect 待判断的矩形
*@return 如果跨越,返回YES,否则返回NO
*/
UIKIT_EXTERN BOOL BMKMapRectSpans180thMeridian(BMKMapRect rect);
/**
*对于跨越了180经线的矩形,本函数将世界之外的部分进行分割,并将分割下来的矩形转换到地球对面,例如将-185度经线对应的区域转换到5度经线对应的区域,并将转换后的矩形返回
*@param rect 待处理的矩形
*@return 返回转换后的矩形
*/
UIKIT_EXTERN BMKMapRect BMKMapRectRemainder(BMKMapRect rect);
/**
*判断点是否在圆内
*@param point 待判断的平面坐标点
*@param center 目标圆形的中心点平面坐标
*@param radius 目标圆形的半径,单位m
*@return 如果在内,返回YES,否则返回NO
*/
UIKIT_EXTERN BOOL BMKCircleContainsPoint(BMKMapPoint point, BMKMapPoint center, double radius);
/**
*判断点是否在圆内
*@param point 待判断的经纬度坐标点
*@param center 目标圆形的中心点经纬度坐标
*@param radius 目标圆形的半径,单位m
*@return 如果在内,返回YES,否则返回NO
*/
UIKIT_EXTERN BOOL BMKCircleContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D center, double radius);
/**
*判断点是否在多边形内
*@param point 待判断的平面坐标点
*@param polygon 目标多边形的顶点数组
*@param count 目标多边形顶点数组元素个数
*@return 如果在内,返回YES,否则返回NO
*/
UIKIT_EXTERN BOOL BMKPolygonContainsPoint(BMKMapPoint point, BMKMapPoint *polygon, NSUInteger count);
/**
*判断点是否在多边形内
*@param point 待判断的经纬度点
*@param polygon 目标多边形的顶点数组
*@param count 目标多边形顶点数组元素个数
*@return 如果在内,返回YES,否则返回NO
*/
UIKIT_EXTERN BOOL BMKPolygonContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D *polygon, NSUInteger count);
/**
*获取折线外某点到这线上距离最近的点
*@param point 待判断的经纬度点
*@param polyline 目标折线的顶点数组
*@param count 目标折线顶点数组元素个数
*@return 返回折线上的点(距离point最近)
*/
UIKIT_EXTERN BMKMapPoint BMKGetNearestMapPointFromPolyline(BMKMapPoint point, BMKMapPoint* polyline, NSUInteger count);
/**
*计算地理矩形区域的面积
*@param leftTop 左上角经纬度坐标点
*@param rightBottom 右下角经纬度坐标点
*@return 返回区域面积,单位:平方米
*/
UIKIT_EXTERN double BMKAreaBetweenCoordinates(CLLocationCoordinate2D leftTop, CLLocationCoordinate2D rightBottom);
/**
*坐标转换函数,从原始GPS坐标,mapbar坐标,google坐标,51地图坐标,mapabc坐标转换为百度坐标(51地图坐标需要显出10000)
*@param coordinate 待转换的坐标
*@param type 待转换的坐标系类型,GPS为原始GPS坐标,COMMON为google坐标,51地图坐标,mapabc坐标
*@return 返回的NSDictionry中包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
*/
UIKIT_EXTERN NSDictionary* BMKConvertBaiduCoorFrom(CLLocationCoordinate2D coordinate,BMK_COORD_TYPE type);
/**
*base64加密后的坐标字典解密函数
*@param dictionary 带解密的NSDictionry,该NSDictionry中应包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
*@return 解密之后的坐标
*/
UIKIT_EXTERN CLLocationCoordinate2D BMKCoorDictionaryDecode(NSDictionary* dictionary);
@@ -0,0 +1,73 @@
/*
* BMKNavigation.h
* BMapKit
*
* Copyright 2011 Baidu Inc. All rights reserved.
*
*/
#import <UIKit/UIKit.h>
#import <BaiduMapAPI_Base/BMKTypes.h>
//定义调起导航的两种类型
//注:自2.8.0开始废弃,只支持调起客户端导航,在调起客户端导航时,才会调起web导航
typedef enum
{
BMK_NAVI_TYPE_NATIVE = 0,//客户端导航
BMK_NAVI_TYPE_WEB,//web导航
} BMK_NAVI_TYPE;
///此类管理调起导航时传入的参数
@interface BMKNaviPara : NSObject
{
BMKPlanNode* _startPoint;
BMKPlanNode* _endPoint;
BMK_NAVI_TYPE _naviType;
NSString* _appScheme;
NSString* _appName;
}
///起点,必须包含经纬度坐标(调起地图客户端时设置起点无效,以“我的位置”为起点)
@property (nonatomic, strong) BMKPlanNode* startPoint;
///终点,必须包含经纬度坐标
@property (nonatomic, strong) BMKPlanNode* endPoint;
///导航类型 注:自2.8.0开始废弃,只支持调起客户端导航,在调起客户端导航时,才会调起web导航
@property (nonatomic, assign) BMK_NAVI_TYPE naviType __deprecated_msg("自2.8.0开始废弃");
///应用返回scheme
@property (nonatomic, strong) NSString* appScheme;
///应用名称
@property (nonatomic, strong) NSString* appName;
///调起百度地图客户端驾车导航失败后(步行、骑行导航设置该参数无效),是否支持调起web地图,默认:YES
@property (nonatomic, assign) BOOL isSupportWeb;
@end
///调起百度地图 -- 导航(驾车、步行、骑行)
@interface BMKNavigation : NSObject
/**
*调起百度地图客户端驾车导航页面
*@param para 调起驾车导航时传入得参数
*/
+ (BMKOpenErrorCode)openBaiduMapNavigation:(BMKNaviPara*)para;
/**
*调起百度地图客户端步行导航页面(不支持调起web地图)
*客户端v8.8以后支持
*@param para 调起步行导航时传入参数
*/
+ (BMKOpenErrorCode)openBaiduMapWalkNavigation:(BMKNaviPara*)para;
/**
*调起百度地图客户端骑行导航页面(不支持调起web地图)
*客户端v8.8以后支持
*@param para 调起骑行导航时传入参数
*/
+ (BMKOpenErrorCode)openBaiduMapRideNavigation:(BMKNaviPara*)para;
/**
*调起百度地图AR步行导航
*百度地图客户端v9.7.5以后支持AR步行导航,低于此版本,默认调用步行导航;注:客户端版本低于8.6.9,不支持步行导航。
*@param para 调起AR步行导航时传入参数
*/
+ (BMKOpenErrorCode)openBaiduMapwalkARNavigation:(BMKNaviPara*)para;
@end
@@ -0,0 +1,23 @@
//
// BMKOpenOption.h
// UtilsComponent
//
// Created by wzy on 15/3/26.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKOpenOption_h
#define UtilsComponent_BMKOpenOption_h
///调起百度地图参数基类
@interface BMKOpenOption : NSObject
///应用返回scheme,用于调起后返回,没有不能返回
@property (nonatomic, strong) NSString* appScheme;
///调起百度地图客户端失败后,是否支持调起web地图,默认:YES
@property (nonatomic, assign) BOOL isSupportWeb;
@end
#endif
@@ -0,0 +1,46 @@
//
// BMKOpenPanorama.h
// UtilsComponent
//
// Created by wzy on 16/5/12.
// Copyright © 2016年 baidu. All rights reserved.
//
#ifndef BMKOpenPanorama_h
#define BMKOpenPanorama_h
#import <BaiduMapAPI_Base/BMKTypes.h>
#import "BMKOpenOption.h"
@protocol BMKOpenPanoramaDelegate;
///调起百度地图全景参数类
@interface BMKOpenPanoramaOption : BMKOpenOption
///poi的uid
@property (nonatomic, strong) NSString* poiUid;
@end
///调起百度地图 -- 全景
@interface BMKOpenPanorama : NSObject
@property (nonatomic, weak) id<BMKOpenPanoramaDelegate> delegate;
/**
* 调起百度地图全景页面
* 异步,调起结果在BMKOpenPanoramaDelegate的onGetOpenPanoramaStatus:通知
*@param option 调起百度地图全景参数类(BMKOpenPanoramaOption
*/
- (void)openBaiduMapPanorama:(BMKOpenPanoramaOption *) option;
@end
///调起百度地图全景delegate,用于获取调起状态
@protocol BMKOpenPanoramaDelegate <NSObject>
- (void)onGetOpenPanoramaStatus:(BMKOpenErrorCode) ecode;
@end
#endif /* BMKOpenPanorama_h */
@@ -0,0 +1,37 @@
//
// BMKOpenPoi.h
// UtilsComponent
//
// Created by wzy on 15/3/26.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKOpenPoi_h
#define UtilsComponent_BMKOpenPoi_h
#import "BMKOpenPoiOption.h"
#import <BaiduMapAPI_Base/BMKTypes.h>
///调起百度地图 -- poi
///注:从iphone百度地图 8.2.0版本开始支持
@interface BMKOpenPoi : NSObject
/**
* 调起百度地图poi详情页面
* 注:从iphone百度地图 8.2.0版本开始支持
*@param option poi详情参数类(BMKOpenPoiDetailOption
*@return 调起结果
*/
+ (BMKOpenErrorCode)openBaiduMapPoiDetailPage:(BMKOpenPoiDetailOption *) option;
/**
* 调起百度地图poi周边检索页面
* 注:从iphone百度地图 8.2.0版本开始支持
*@param option poi周边参数类(BMKOpenPoiNearbyOption
*@return 调起结果
*/
+ (BMKOpenErrorCode)openBaiduMapPoiNearbySearch:(BMKOpenPoiNearbyOption *) option;
@end
#endif
@@ -0,0 +1,39 @@
//
// BMKOpenPoiOption.h
// UtilsComponent
//
// Created by wzy on 15/3/26.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKOpenPoiOption_h
#define UtilsComponent_BMKOpenPoiOption_h
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "BMKOpenOption.h"
///调起百度地图: poi详情参数类
@interface BMKOpenPoiDetailOption : BMKOpenOption
///poi的uid
@property (nonatomic, strong) NSString* poiUid;
@end
///调起百度地图: poi周边参数类
@interface BMKOpenPoiNearbyOption : BMKOpenOption
///中心点(经纬度)
@property (nonatomic, assign) CLLocationCoordinate2D location;
///半径
@property (nonatomic, assign) NSUInteger radius;
///关键词
@property (nonatomic, strong) NSString* keyword;
@end
#endif
@@ -0,0 +1,45 @@
//
// BMKOpenRoute.h
// UtilsComponent
//
// Created by wzy on 15/3/26.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKOpenRoute_h
#define UtilsComponent_BMKOpenRoute_h
#import "BMKOpenRouteOption.h"
#import <BaiduMapAPI_Base/BMKTypes.h>
///调起百度地图 -- 路线
///注:从iphone百度地图 8.2.0版本开始支持
@interface BMKOpenRoute : NSObject
/**
* 调起百度地图步行路线页面
* 注:从iphone百度地图 8.2.0版本开始支持
*@param option 步行路线参数类(BMKOpenWalkingRouteOption
*@return 调起结果
*/
+ (BMKOpenErrorCode)openBaiduMapWalkingRoute:(BMKOpenWalkingRouteOption *) option;
/**
* 调起百度地图公交路线页面
* 注:从iphone百度地图 8.2.0版本开始支持
*@param option 公交路线参数类(BMKOpenTransitRouteOption
*@return 调起结果
*/
+ (BMKOpenErrorCode)openBaiduMapTransitRoute:(BMKOpenTransitRouteOption *) option;
/**
* 调起百度地图驾车路线检索页面
* 注:从iphone百度地图 8.2.0版本开始支持
*@param option 驾车路线参数类(BMKOpenDrivingRouteOption
*@return 调起结果
*/
+ (BMKOpenErrorCode)openBaiduMapDrivingRoute:(BMKOpenDrivingRouteOption *) option;
@end
#endif
@@ -0,0 +1,54 @@
//
// BMKOpenRouteOption.h
// UtilsComponent
//
// Created by wzy on 15/3/26.
// Copyright (c) 2015年 baidu. All rights reserved.
//
#ifndef UtilsComponent_BMKOpenRouteOption_h
#define UtilsComponent_BMKOpenRouteOption_h
#import <UIKit/UIKit.h>
#import "BMKOpenOption.h"
#import <BaiduMapAPI_Base/BMKTypes.h>
typedef enum
{
BMK_OPEN_TRANSIT_RECOMMAND = 3, //推荐
BMK_OPEN_TRANSIT_TRANSFER_FIRST, //少换乘
BMK_OPEN_TRANSIT_WALK_FIRST, //少步行
BMK_OPEN_TRANSIT_NO_SUBWAY, //不坐地铁
BMK_OPEN_TRANSIT_TIME_FIRST, //时间短
}BMKOpenTransitPolicy;
///此类管理调起百度地图路线时传入的参数
@interface BMKOpenRouteOption : BMKOpenOption
///起点
@property (nonatomic, strong) BMKPlanNode *startPoint;
///终点
@property (nonatomic, strong) BMKPlanNode *endPoint;
@end
///此类管理调起百度地图步行路线时传入的参数
@interface BMKOpenWalkingRouteOption : BMKOpenRouteOption
@end
///此类管理调起百度地图驾车路线时传入的参数
@interface BMKOpenDrivingRouteOption : BMKOpenRouteOption
@end
///此类管理调起百度地图公共交通路线时传入的参数
@interface BMKOpenTransitRouteOption : BMKOpenRouteOption
//策略,默认:BMK_OPEN_TRANSIT_RECOMMAND(异常值,强制使用BMK_OPEN_TRANSIT_RECOMMAND)
@property (nonatomic, assign) BMKOpenTransitPolicy openTransitPolicy;
@end
#endif
@@ -0,0 +1,18 @@
//
// BMKUtilsComponent.h
// baiduMapSdk
//
// Created by baidu on 14-4-22.
// Copyright (c) 2014年 baidu. All rights reserved.
//
#import "BMKGeometry.h"
#import "BMKNavigation.h"
#import "BMKOpenPoi.h"
#import "BMKOpenRoute.h"
#import "BMKOpenPoiOption.h"
#import "BMKOpenRouteOption.h"
#import "BMKFavPoiManager.h"
#import "BMKUtilsVersion.h"
#import "BMKOpenPanorama.h"
@@ -0,0 +1,33 @@
//
// BMKUtilsVersion.h
// UtilsComponent
//
// Created by wzy on 15/9/9.
// Copyright © 2015年 baidu. All rights reserved.
//
#ifndef BMKUtilsVersion_h
#define BMKUtilsVersion_h
#import <UIKit/UIKit.h>
/**
*重要:
*utils组件的版本和base组件的版本必须一致,否则不能正常使用
*/
/**
*获取当前地图API utils组件 的版本号
*当前utils组件版本 : 3.3.0
*return 返回当前API utils组件 的版本号
*/
UIKIT_EXTERN NSString* BMKGetMapApiUtilsComponentVersion();
/**
*检查utils组件的版本号是否和base组件的版本号一致
*return 版本号一致返回YES
*/
UIKIT_EXTERN BOOL BMKCheckUtilsComponentIsLegal();
#endif /* BMKUtilsVersion_h */
@@ -0,0 +1,67 @@
计算工具:包括测距(两点之间距离)、坐标转换、调起百度地图等功能;
--------------------------------------------------------------------------------------
iOS 地图 SDK v3.3.0是适用于iOS系统移动设备的矢量地图开发包
--------------------------------------------------------------------------------------
地图SDK功能介绍(全功能开发包):
地图:提供地图展示和地图操作功能;
POI检索:支持周边检索、区域检索和城市内兴趣点检索;
地理编码:提供经纬度和地址信息相互转化的功能接口;
线路规划:支持公交、驾车、步行三种方式的线路规划;
覆盖物图层:支持在地图上添加覆盖物(标注、几何图形、热力图、地形图图层等),展示更丰富的LBS信息;
定位:获取当前位置信息,并在地图上展示(支持普通、跟随、罗盘三种模式);
离线地图:使用离线地图可节省用户流量,提供更好的地图展示效果;
调启百度地图:利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能;
周边雷达:利用周边雷达功能,开发者可在App内低成本、快速实现查找周边使用相同App的用户位置的功能;
LBS云检索:支持查询存储在LBS云内的自有数据;
特色功能:提供短串分享、Place详情检索、热力图等特色功能,帮助开发者搭建功能更加强大的应用;
--------------------------------------------------------------------------------------
注:自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)。
新 版 提 示 】
【 注 意 】
1、自v3.2.0起,百度地图iOS SDK全面支持HTTPS,需要广大开发者导入第三方openssl静态库:libssl.a和libcrypto.a(存放于thirdlib目录下)
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择libssl.a和libcrypto.a添加到工程中 。
2、支持CocoaPods导入
pod setup //更新CocoPods的本地库
pod search BaiduMapKit //下载最新地图SDK
【 新 增 】
[ 基 础 地 图 ]
3D地图下,增加显示天空效果,无需设置
[ 工 具 ]
1.全面支持GCJ02坐标输入/输出,全局设置方法如下:
[BMKMapManager setCoordinateTypeUsedInBaiduMapSDK:BMK_COORDTYPE_COMMON];//默认为BD09LL坐标,且此方法仅在国内生效,国外均为WGS84坐标
2. 新增调启步行AR导航接口:openBaiduMapwalkARNavigation
[ LBS云]
云检索中,keywords 改为非必填项
【 优 化 】
优化个性化地图元素分类
【 修 复 】
少部分地铁线及室内图无法显示问题(v3.2.0引入的问题)。␍未下载全国离线基础包时,离线状态下全国(球)地图显示异常。␍␍