9 #import <UIKit/UIKit.h> 10 #import <CoreLocation/CoreLocation.h> 23 CLLocationDegrees latitudeDelta;
24 CLLocationDegrees longitudeDelta;
32 CLLocationCoordinate2D center;
44 static inline QCoordinateSpan QCoordinateSpanMake(CLLocationDegrees latitudeDelta, CLLocationDegrees longitudeDelta)
103 static inline QMapPoint QMapPointMake(
double x,
double y)
116 static inline QMapSize QMapSizeMake(
double width,
double height)
131 static inline QMapRect QMapRectMake(
double x,
double y,
double width,
double height)
133 return (
QMapRect){QMapPointMake(x, y), QMapSizeMake(width, height)};
143 static inline double QMapRectGetMinX(
QMapRect rect)
145 return rect.origin.x;
155 static inline double QMapRectGetMinY(
QMapRect rect)
157 return rect.origin.y;
167 static inline double QMapRectGetMidX(
QMapRect rect)
169 return rect.origin.x + rect.size.width / 2.0;
179 static inline double QMapRectGetMidY(
QMapRect rect)
181 return rect.origin.y + rect.size.height / 2.0;
191 static inline double QMapRectGetMaxX(
QMapRect rect)
193 return rect.origin.x + rect.size.width;
203 static inline double QMapRectGetMaxY(
QMapRect rect)
205 return rect.origin.y + rect.size.height;
215 static inline double QMapRectGetWidth(
QMapRect rect)
217 return rect.size.width;
227 static inline double QMapRectGetHeight(
QMapRect rect)
229 return rect.size.height;
242 return point1.x == point2.x && point1.y == point2.y;
255 return size1.width == size2.width && size1.height == size2.height;
269 QMapPointEqualToPoint(rect1.origin, rect2.origin) &&
270 QMapSizeEqualToSize(rect1.size, rect2.size);
280 static inline BOOL QMapRectIsNull(
QMapRect rect)
282 return QMapPointEqualToPoint(rect.origin, QMapRectNull.origin);
292 static inline BOOL QMapRectIsEmpty(
QMapRect rect)
294 return QMapRectIsNull(rect) || (rect.size.width == 0.0 && rect.size.height == 0.0);
354 static inline NSString *QStringFromMapPoint(
QMapPoint point)
356 return [NSString stringWithFormat:
@"{%.1f, %.1f}", point.x, point.y];
366 static inline NSString *QStringFromMapSize(
QMapSize size)
368 return [NSString stringWithFormat:
@"{%.1f, %.1f}", size.width, size.height];
378 static inline NSString *QStringFromMapRect(
QMapRect rect)
380 return [NSString stringWithFormat:
@"{%@, %@}", QStringFromMapPoint(rect.origin), QStringFromMapSize(rect.size)];
391 extern QMapPoint QMapPointForCoordinate(CLLocationCoordinate2D coordinate);
400 extern CLLocationCoordinate2D QCoordinateForMapPoint(
QMapPoint mapPoint);
427 extern CLLocationDistance QMetersPerMapPointAtLatitude(CLLocationDegrees latitude);
436 extern double QMapPointsPerMeterAtLatitude(CLLocationDegrees latitude);
447 static inline QCoordinateRegion QCoordinateRegionMakeWithDistance(CLLocationCoordinate2D centerCoordinate, CLLocationDistance latitudinalMeters, CLLocationDistance longitudinalMeters)
449 QMapSize spanSize = QMapSizeMake(QMapPointsPerMeterAtLatitude(centerCoordinate.latitude) * latitudinalMeters, QMapPointsPerMeterAtLatitude(centerCoordinate.latitude) * longitudinalMeters);
451 QMapPoint center = QMapPointForCoordinate(centerCoordinate);
452 QMapPoint leftTop = QMapPointMake(center.x - spanSize.width / 2.0, center.y - spanSize.height / 2.0);
453 QMapPoint rightBottom = QMapPointMake(center.x + spanSize.width / 2.0, center.y + spanSize.height / 2.0);
455 CLLocationCoordinate2D leftTopCoordinate = QCoordinateForMapPoint(leftTop);
456 CLLocationCoordinate2D rightBottomCoordinate = QCoordinateForMapPoint(rightBottom);
458 return QCoordinateRegionMake(centerCoordinate,
459 QCoordinateSpanMake(fabs(leftTopCoordinate.latitude - rightBottomCoordinate.latitude),
460 fabs(leftTopCoordinate.longitude - rightBottomCoordinate.longitude)));
472 extern BOOL QPolygonContainsPoint(
QMapPoint point,
QMapPoint *polygon, NSUInteger count);
481 extern BOOL QPolygonContainsCoordinate(CLLocationCoordinate2D coordinate, CLLocationCoordinate2D *polygon, NSUInteger count);
501 extern CLLocationDistance QMetersBetweenCoordinates(CLLocationCoordinate2D a, CLLocationCoordinate2D b);
532 extern QCoordinateRegion QBoundingCoordinateRegionWithCoordinates(CLLocationCoordinate2D *coordinates, NSUInteger count);
543 extern QCoordinateRegion QBoundingCoordinateRegionWithCoordinatesAndCenter(CLLocationCoordinate2D *coordinates, NSUInteger count, CLLocationCoordinate2D centerCoordinate);
550 extern QMapRect QWorldMapRect(
void);
平面投影大小结构定义
Definition: QGeometry.h:75
平面投影矩形结构定义
Definition: QGeometry.h:84
定义了地图的某一部份的数据结构
Definition: QGeometry.h:30
定义了以 CLLocationDegree 为单位的矩形
Definition: QGeometry.h:21
平面投影坐标结构定义
Definition: QGeometry.h:66