百度地图SDK for iOS v4.1.1 类参考
BMKGeometry.h
1 /* BMKGeometry.h
2  * BMapKit
3  *
4  * Copyright 2011 Baidu Inc. All rights reserved.
5  *
6  */
7 
8 #import <BaiduMapAPI_Base/BMKTypes.h>
9 #import <UIKit/UIKit.h>
10 
11 
18 UIKIT_STATIC_INLINE BMKCoordinateSpan BMKCoordinateSpanMake(CLLocationDegrees latitudeDelta, CLLocationDegrees longitudeDelta)
19 {
20  BMKCoordinateSpan span;
21  span.latitudeDelta = latitudeDelta;
22  span.longitudeDelta = longitudeDelta;
23  return span;
24 }
25 
32 UIKIT_STATIC_INLINE BMKCoordinateRegion BMKCoordinateRegionMake(CLLocationCoordinate2D centerCoordinate, BMKCoordinateSpan span)
33 {
34  BMKCoordinateRegion region;
35  region.center = centerCoordinate;
36  region.span = span;
37  return region;
38 }
39 
47 UIKIT_EXTERN BMKCoordinateRegion BMKCoordinateRegionMakeWithDistance(CLLocationCoordinate2D centerCoordinate, CLLocationDistance latitudinalMeters, CLLocationDistance longitudinalMeters);
48 
54 UIKIT_EXTERN BMKMapPoint BMKMapPointForCoordinate(CLLocationCoordinate2D coordinate);
55 
61 UIKIT_EXTERN CLLocationCoordinate2D BMKCoordinateForMapPoint(BMKMapPoint mapPoint);
62 
68 UIKIT_EXTERN CLLocationDistance BMKMetersPerMapPointAtLatitude(CLLocationDegrees latitude);
69 
75 UIKIT_EXTERN double BMKMapPointsPerMeterAtLatitude(CLLocationDegrees latitude);
76 
83 UIKIT_EXTERN CLLocationDistance BMKMetersBetweenMapPoints(BMKMapPoint a, BMKMapPoint b);
84 
91 UIKIT_STATIC_INLINE BMKMapPoint BMKMapPointMake(double x, double y) {
92  return (BMKMapPoint){x, y};
93 }
94 
101 UIKIT_STATIC_INLINE BMKMapSize BMKMapSizeMake(double width, double height) {
102  return (BMKMapSize){width, height};
103 }
104 
113 UIKIT_STATIC_INLINE BMKMapRect BMKMapRectMake(double x, double y, double width, double height) {
114  return (BMKMapRect){ BMKMapPointMake(x, y), BMKMapSizeMake(width, height)};
115 }
116 
122 UIKIT_STATIC_INLINE double BMKMapRectGetMinX(BMKMapRect rect) {
123  return rect.origin.x;
124 }
125 
131 UIKIT_STATIC_INLINE double BMKMapRectGetMinY(BMKMapRect rect) {
132  return rect.origin.y;
133 }
134 
140 UIKIT_STATIC_INLINE double BMKMapRectGetMidX(BMKMapRect rect) {
141  return rect.origin.x + rect.size.width / 2.0;
142 }
143 
149 UIKIT_STATIC_INLINE double BMKMapRectGetMidY(BMKMapRect rect) {
150  return rect.origin.y + rect.size.height / 2.0;
151 }
152 
158 UIKIT_STATIC_INLINE double BMKMapRectGetMaxX(BMKMapRect rect) {
159  return rect.origin.x + rect.size.width;
160 }
161 
167 UIKIT_STATIC_INLINE double BMKMapRectGetMaxY(BMKMapRect rect) {
168  return rect.origin.y + rect.size.height;
169 }
170 
176 UIKIT_STATIC_INLINE double BMKMapRectGetWidth(BMKMapRect rect) {
177  return rect.size.width;
178 }
179 
185 UIKIT_STATIC_INLINE double BMKMapRectGetHeight(BMKMapRect rect) {
186  return rect.size.height;
187 }
188 
195 UIKIT_STATIC_INLINE BOOL BMKMapPointEqualToPoint(BMKMapPoint point1, BMKMapPoint point2) {
196  return point1.x == point2.x && point1.y == point2.y;
197 }
198 
205 UIKIT_STATIC_INLINE BOOL BMKMapSizeEqualToSize(BMKMapSize size1, BMKMapSize size2) {
206  return size1.width == size2.width && size1.height == size2.height;
207 }
208 
215 UIKIT_STATIC_INLINE BOOL BMKMapRectEqualToRect(BMKMapRect rect1, BMKMapRect rect2) {
216  return
217  BMKMapPointEqualToPoint(rect1.origin, rect2.origin) &&
218  BMKMapSizeEqualToSize(rect1.size, rect2.size);
219 }
220 
226 UIKIT_STATIC_INLINE BOOL BMKMapRectIsNull(BMKMapRect rect) {
227  return isinf(rect.origin.x) || isinf(rect.origin.y);
228 }
229 
235 UIKIT_STATIC_INLINE BOOL BMKMapRectIsEmpty(BMKMapRect rect) {
236  return BMKMapRectIsNull(rect) || (rect.size.width == 0.0 && rect.size.height == 0.0);
237 }
238 
244 UIKIT_STATIC_INLINE NSString *BMKStringFromMapPoint(BMKMapPoint point) {
245  return [NSString stringWithFormat:@"{%.1f, %.1f}", point.x, point.y];
246 }
247 
253 UIKIT_STATIC_INLINE NSString *BMKStringFromMapSize(BMKMapSize size) {
254  return [NSString stringWithFormat:@"{%.1f, %.1f}", size.width, size.height];
255 }
256 
262 UIKIT_STATIC_INLINE NSString *BMKStringFromMapRect(BMKMapRect rect) {
263  return [NSString stringWithFormat:@"{%@, %@}", BMKStringFromMapPoint(rect.origin), BMKStringFromMapSize(rect.size)];
264 }
265 
272 UIKIT_EXTERN BMKMapRect BMKMapRectUnion(BMKMapRect rect1, BMKMapRect rect2);
273 
280 UIKIT_EXTERN BMKMapRect BMKMapRectIntersection(BMKMapRect rect1, BMKMapRect rect2);
281 
289 UIKIT_EXTERN BMKMapRect BMKMapRectInset(BMKMapRect rect, double dx, double dy);
290 
298 UIKIT_EXTERN BMKMapRect BMKMapRectOffset(BMKMapRect rect, double dx, double dy);
299 
308 UIKIT_EXTERN void BMKMapRectDivide(BMKMapRect rect, BMKMapRect *slice, BMKMapRect *remainder, double amount, CGRectEdge edge);
309 
316 UIKIT_EXTERN BOOL BMKMapRectContainsPoint(BMKMapRect rect, BMKMapPoint point);
317 
324 UIKIT_EXTERN BOOL BMKMapRectContainsRect(BMKMapRect rect1, BMKMapRect rect2);
325 
332 UIKIT_EXTERN BOOL BMKMapRectIntersectsRect(BMKMapRect rect1, BMKMapRect rect2);
333 
339 UIKIT_EXTERN BMKCoordinateRegion BMKCoordinateRegionForMapRect(BMKMapRect rect);
340 
346 UIKIT_EXTERN BOOL BMKMapRectSpans180thMeridian(BMKMapRect rect);
347 
353 UIKIT_EXTERN BMKMapRect BMKMapRectRemainder(BMKMapRect rect);
354 
362 UIKIT_EXTERN BOOL BMKCircleContainsPoint(BMKMapPoint point, BMKMapPoint center, double radius);
363 
371 UIKIT_EXTERN BOOL BMKCircleContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D center, double radius);
379 UIKIT_EXTERN BOOL BMKPolygonContainsPoint(BMKMapPoint point, BMKMapPoint *polygon, NSUInteger count);
380 
388 UIKIT_EXTERN BOOL BMKPolygonContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D *polygon, NSUInteger count);
389 
397 UIKIT_EXTERN BMKMapPoint BMKGetNearestMapPointFromPolyline(BMKMapPoint point, BMKMapPoint* polyline, NSUInteger count);
398 
405 UIKIT_EXTERN double BMKAreaBetweenCoordinates(CLLocationCoordinate2D leftTop, CLLocationCoordinate2D rightBottom);
406 
413 UIKIT_EXTERN CGPoint BMKConvertToBaiduMercatorFromBD09LL(CLLocationCoordinate2D bd09llCoordinate);
414 
421 UIKIT_EXTERN CLLocationCoordinate2D BMKConvertToBD09LLFromBaiduMercator(CGPoint bdMCTCoordinate);
422 
433 UIKIT_EXTERN CLLocationCoordinate2D BMKCoordTrans(CLLocationCoordinate2D coordinate, BMK_COORD_TYPE fromType, BMK_COORD_TYPE toType);
434 
441 UIKIT_EXTERN NSDictionary* BMKConvertBaiduCoorFrom(CLLocationCoordinate2D coordinate,BMK_COORD_TYPE type);
442 
448 UIKIT_EXTERN CLLocationCoordinate2D BMKCoorDictionaryDecode(NSDictionary* dictionary);
449 
double y
纵坐标
Definition: BMKTypes.h:115
BMKCoordinateSpan span
经纬度范围
Definition: BMKTypes.h:103
矩形大小,用直角地理坐标表示
Definition: BMKTypes.h:119
CLLocationDegrees latitudeDelta
纬度范围
Definition: BMKTypes.h:90
BMKMapPoint origin
屏幕左上点对应的直角地理坐标
Definition: BMKTypes.h:126
矩形,用直角地理坐标表示
Definition: BMKTypes.h:125
double x
横坐标
Definition: BMKTypes.h:114
CLLocationDegrees longitudeDelta
经度范围
Definition: BMKTypes.h:91
double height
高度
Definition: BMKTypes.h:121
BMKMapSize size
坐标范围
Definition: BMKTypes.h:127
CLLocationCoordinate2D center
中心点经纬度坐标
Definition: BMKTypes.h:102
表示一个经纬度范围
Definition: BMKTypes.h:89
表示一个经纬度区域
Definition: BMKTypes.h:101
double width
宽度
Definition: BMKTypes.h:120
地理坐标点,用直角地理坐标表示
Definition: BMKTypes.h:113