גושים

GMSGeometryUtils

מחלקות

לבנותGMSMapPoint
 נקודה במפה. עוד...

Typedefs

typedef struct GMSMapPointGMSMapPoint
 נקודה במפה.

פונקציות

GMSMapPointGMSProject (הקואורדינטה CLLocationCoordinate2D)
 פרויקט coordinate במפה.
CLLocationCoordinate2DGMSUnproject (נקודה ב-GMSMapPoint)
 ביטול הפרויקטים של point מהמפה.
GMSMapPointGMSMapPointInterpolate (GMSMapPoint a, GMSMapPoint b, d double)
 מחזירה נקודה שעברה אינטרפולציה לינארית בקטע [a, b] בשבר t מ-a.
כפולGMSMapPointDistance (GMSMapPoint a, GMSMapPoint ב)
 מחזירה את אורך הקטע [a, b] במרחב הצפוי.
בוליאניGMSGeometryContainsLocation (נקודה CLLocationCoordinate2D, GMSPath *path, גיאודזית BOOL)
 הפונקציה מחזירה אם point נמצא בתוך נתיב.
בוליאניGMSGeometryIsLocationOnPathTolerance (נקודת CLLocationCoordinate2D, GMSPath *path, גיאודזית BOOL, סובלנות CLLocationAddress)
 הפונקציה מחזירה אם point נמצא על path או קרוב אליו, בתוך הטווח שצוין ב-tolerance במטרים.
בוליאניGMSGeometryIsLocationOnPath (נקודה CLLocationCoordinate2D, GMSPath *נתיב, גיאודזית BOOL)
 זהה ל-GGSeometryIsLocationOnPath(point, path, גאומטריה, סובלנות), עם סבילות ברירת מחדל של 0.1 מטר.
CLLocationDistanceGMSGeometryDistance (CLLocationCoordinate2D מ-, CLLocationCoordinate2D אל)
 מחזירה את המרחק הגדול של המעגל בין שתי קואורדינטות, במטרים, בכדור הארץ.
CLLocationDistanceGMSGeometryLength (GMSPath *)
 מחזירה את האורך הגדול של העיגול של path במטרים על פני כדור הארץ.
כפולGMSGeometryArea (GMSPath *path)
 מחזירה את השטח של מצולע גיאודזי שהוגדר על ידי path בכדור הארץ.
כפולGMSGeometrySignedArea (GMSPath *path)
 מחזירה את השטח החתום של מצולע גיאודזי שהוגדר באמצעות path בכדור הארץ.
CLLocationDirectionGMSGeometryHeading (CLLocationCoordinate2D מ-, CLLocationCoordinate2D אל)
 הפונקציה מחזירה את הכותרת הראשונית (מעלות בכיוון צפון) ב-from של הנתיב הקצר ביותר אל to.
CLLocationCoordinate2DGMSGeometryOffset (CLLocationCoordinate2D מתאריך, CLLocationAddress, כותרת CLLocationDirection)
 מחזירה את קואורדינטת היעד, כשהחל מ-from עם האות heading הראשוני, נעה distance מטרים לאורך קשת מעגלית גדולה, בכדור הארץ.
CLLocationCoordinate2DGMSGeometryInterpolate (CLLocationCoordinate2D מ-, CLLocationCoordinate2D לשבר כפול)
 מחזירה את הקואורדינטה שנמצאת בנתיב הקצר ביותר בין הקואורדינטות fraction בדרך בין הקואורדינטות from ו-to.
NSArray&lt; GMSStyleSpan * > *GMSStyleSpans (GMSPath *path, NSArray< GMSStrokeStyle * > *styles, NSArray< NSNumber * > *lengths, GMSLengthKind Kind)
 מחזירה NSArray של GMSStyleSpan על ידי החלה חוזרת של פרטי סגנון ואורך מ-styles ו-lengths לאורך path.
NSArray&lt; GMSStyleSpan * > *GMSStyleSpansOffset (GMSPath *path, NSArray< GMSStrokeStyle * > *styles, NSArray< NSNumber * > *lengths, GMSLengthKind אורך Kind, Double lengthOffset)
 בדומה ל-GMSStyleSpans(path, style, lengths, lengthKind), אבל גם לוקח היסט אורך ראשוני, שהמערכת תדלג עליו ביחס למערך lengths.

מסמכי תיעוד של Typedef

typedef struct GMSMapPoint GMSMapPoint

נקודה במפה.

עשוי לייצג קואורדינטה צפויה.

x הוא בטווח [-1, 1]. כיוון הציר הוא נורמלי: y צומח לכיוון צפון, x צומח לכיוון מזרח. (0, 0) הוא מרכז המפה.

ראו GMSProject() ו-GMSUnproject().


מסמכי תיעוד של הפונקציות

GMSMapPoint GMSProject ( CLLocationCoordinate2D קואורדינטה)

פרויקט coordinate במפה.

coordinate חייב להיות חוקי.

CLLocationLocation2D של GMSUnproject ( GMSMapPoint נקודה)

ביטול הפרויקטים של point מהמפה.

point.x חייב להיות בטווח [-1, 1].

מחזירה נקודה שעברה אינטרפולציה לינארית בקטע [a, b] בשבר t מ-a.

t==0 תואם ל-a, t==1 תואם ל-b.

האינטרפולציה מתבצעת לאורך הדרך הקצרה בין הנקודות שעשויות לעבור את קו התאריך. לדוגמה אינטרפולציה מסן פרנסיסקו לטוקיו תעבור מצפון להוואי ותחצה את קו התאריך.

מחזירה את אורך הקטע [a, b] במרחב הצפוי.

האורך מחושב לאורך הנתיב הקצר בין הנקודות שעשויות לעבור את קו התאריך. לדוגמה המרחק בין הנקודות המתאימות לסן פרנסיסקו ולטוקיו מודד את הקטע שעובר מצפון להוואי וחוצה את קו התאריך.

BOOL GMSGeometryContainsLocation ( CLLocationCoordinate2D point,
GMSPath * path,
בוליאני גיאודסי
)

הפונקציה מחזירה אם point נמצא בתוך נתיב.

הנתיב נחשב תמיד כסגור, גם אם הנקודה האחרונה שווה לזו וגם אם לא.

הקוטב הדרומי מוגדר ככזה שלא מכיל את הקוטב הדרומי.

path מתאר קטעי מעגל מעולים אם geodesic הוא 'כן', וקטעים של רומב (לוקסודרומי) אחרת.

אם point שווה בדיוק לאחד מהקודים, התוצאה היא 'כן'. נקודה שלא שווה לקודד נמצאת בצד אחד או בצד אחר של קטע נתיב כלשהו – היא אף פעם לא יכולה להיות "בדיוק באותו אזור גבול".

לבדיקת גבולות עם סובלנות, ראו GMSGeometryIsLocationOnPath().

BOOL GMSGeometryIsLocationOnPathTolerance ( CLLocationCoordinate2D point,
GMSPath * path,
בוליאני geodesic,
CLLocationDistance סבילות
)

הפונקציה מחזירה אם point נמצא על path או קרוב אליו, בתוך הטווח שצוין ב-tolerance במטרים.

path מורכב מקטעי מעגל מעולים אם geodesic הוא 'כן', ומקטעי יהלום (לוקסודרומי) אם geodesic הוא NO.

פרטים נוספים אפשר למצוא בכתובת GGSeometryIsLocationOnPath(נקודה, נתיב, גאודזית).

הסבלנות במטרים מוגדרת ביחס לרדיוס הכדורי של כדור הארץ. אם אתם צריכים לעבוד על שטח ברדיוס שונה, תוכלו לחשב את ערך הסבלנות המקביל בעזרת הסבלנות הרצויה על פני השטח של הרדיוס R: סובלנות = toleranceR * (רדיוס כדור הארץ / R), עם רדיוס כדור הארץ=6371009.

BOOL GMSGeometryIsLocationOnPath ( CLLocationCoordinate2D point,
GMSPath * path,
בוליאני גיאודסי
)

זהה ל-GGSeometryIsLocationOnPath(point, path, גאומטריה, סובלנות), עם סבילות ברירת מחדל של 0.1 מטר.

CLLocationAddress – מרחק של GMSGeometryDistance ( CLLocationCoordinate2D from,
CLLocationCoordinate2D אל
)

מחזירה את המרחק הגדול של המעגל בין שתי קואורדינטות, במטרים, בכדור הארץ.

זהו המרחק הקצר ביותר בין שתי הקואורדינטות בכדור.

שתי הקואורדינטות חייבות להיות חוקיות.

CLLocationPosition GMSGeometryLength ( GMSPath * path)

מחזירה את האורך הגדול של העיגול של path במטרים על פני כדור הארץ.

זהו הסכום של GMSGeometryDistance() מעל קטעי הנתיב.

כל הקואורדינטות של הנתיב חייבות להיות חוקיות.

GMSGeometryArea כפול ( GMSPath * path)

מחזירה את השטח של מצולע גיאודזי שהוגדר על ידי path בכדור הארץ.

"בפנים" של הפוליגון מוגדר ככזה שלא מכיל את הקוטב הדרומי.

אם path לא סגור, הוא בכל זאת נחשב כנתיב סגור, והתוצאה זהה.

כל הקואורדינטות של הנתיב חייבות להיות חוקיות.

הפוליגון חייב להיות פשוט (לא חופף לעצמי) ויכול להיות קעור.

אם קטע כלשהו בנתיב הוא זוג נקודות אנטי-פודיות, התוצאה אינה מוגדרת - כי שתי נקודות אנטי-פודיות לא יוצרות קטע ייחודי של מעגל גדול בספירה.

GMSGeometrySignedArea כפול ( GMSPath * path)

מחזירה את השטח החתום של מצולע גיאודזי שהוגדר באמצעות path בכדור הארץ.

בתוצאה יש אותו ערך מוחלט כמו GMSGeometryArea(); הוא חיובי אם נקודות הנתיב נמצאות בסדר נגד כיוון השעון, ושלילי אם לא.

חלות אותן ההגבלות כמו על GMSGeometryArea().

CLLocationDirection GMSGeometryHeading ( CLLocationCoordinate2D from,
CLLocationCoordinate2D אל
)

הפונקציה מחזירה את הכותרת הראשונית (מעלות בכיוון צפון) ב-from של הנתיב הקצר ביותר אל to.

הערך המוחזר הוא בטווח [0, 360).

מחזירה 0 אם שתי הקואורדינטות זהות.

שתי הקואורדינטות חייבות להיות חוקיות.

כדי לקבל את הכותרת הסופית ב-to, צריך להשתמש במודולו 360 (GGSeometryheader(to, from) + 180.

CLLocationLocation2D של GMSGeometryOffset ( CLLocationCoordinate2D from,
CLLocationDistance distance (מרחק),
CLLocationDirection header
)

מחזירה את קואורדינטת היעד, כשהחל מ-from עם האות heading הראשוני, נעה distance מטרים לאורך קשת מעגלית גדולה, בכדור הארץ.

קו האורך שמתקבל הוא בטווח [-180, 180).

שתי הקואורדינטות חייבות להיות חוקיות.

CLLocationCoordinate2D GMSGeometryInterpolate ( CLLocationCoordinate2D from,
CLLocationCoordinate2D to,
כפול שבר
)

מחזירה את הקואורדינטה שנמצאת בנתיב הקצר ביותר בין הקואורדינטות fraction בדרך בין הקואורדינטות from ו-to.

קו האורך שמתקבל הוא בטווח [-180, 180).

NSArray<GMSStyleSpan *>* GMSStyleSpans ( GMSPath * path,
NSArray&lt; GMSStrokeStyle * > * styles,
NSArray&lt; NSNumber * > * lengths,
GMSLengthKind lengthKind
)

מחזירה NSArray של GMSStyleSpan על ידי החלה חוזרת של פרטי סגנון ואורך מ-styles ו-lengths לאורך path.

path – הנתיב שלאורכו מתבצע חישוב של טווח הפלט. styles מערך NSA של GMSStrokeStyle. המכשיר נצמד אם צריך להשתמש בו. השדה לא יכול להיות ריק. lengths NSArray של NSNumber; כל רשומה מציינת את האורך של הסגנון המתאים מ-styles. המכשיר נצמד אם צריך להשתמש בו. השדה לא יכול להיות ריק. lengthKind הפרשנות של הערכים מ-lengths (גיאודזי, חמוץ או צפוי).

דוגמה: קו פוליגוני עם טווחים מתחלפים בשחור-לבן:

 GMSMutablePath *path;
 NSArray *styles = @[[GMSStrokeStyle solidColor:[UIColor whiteColor]],
                     [GMSStrokeStyle solidColor:[UIColor blackColor]]];
 NSArray *lengths = @[@100000, @50000];
 polyline.path = path;
 polyline.spans = GMSStyleSpans(path, styles, lengths, kGMSLengthRhumb);
 
NSArray<GMSStyleSpan *>* GMSStyleSpansOffset ( GMSPath * path,
NSArray&lt; GMSStrokeStyle * > * styles,
NSArray&lt; NSNumber * > * lengths,
GMSLengthKind lengthKind,
כפול lengthOffset
)

בדומה ל-GMSStyleSpans(path, style, lengths, lengthKind), אבל גם לוקח היסט אורך ראשוני, שהמערכת תדלג עליו ביחס למערך lengths.

lengthOffset האורך (למשל במטרים) שיש לדלג עליו בהתחלה מ-lengths.