SDK של מפות לספריית השירותים ב-Android

בחירת פלטפורמה: Android iOS

רוצה להוסיף תכונות מתקדמות למפות? Maps SDK for Android Utility Library היא ספריית קוד פתוח של מחלקות שמתאימות למגוון אפליקציות. המאגר של GitHub כולל את המחלקות של כלי השירות ואפליקציית הדגמה שממחישה את השימוש בכל מחלקה.

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

הגדרה מהירה

כדי להתקין את Maps SDK for Android Utility Library, פועלים לפי מדריך ההגדרה.

התשתיות

מפה עם שכבת GeoJSON

ייבוא קובץ GeoJSON למפה

אפשר לאחסן תכונות בפורמט GeoJSON ולהשתמש בכלי השירות הזה כדי להציג אותן כשכבה על גבי מפה. יש להתקשר אל addLayer() כדי להוסיף את נתוני GeoJSON למפה. אפשר גם להוסיף תכונות נפרדות על ידי קריאה ל-addFeature(), העברת האובייקט GeoJsonFeature.

לפרטים נוספים, אפשר לעיין במסמכי התיעוד במפות Google ל-Android GeoJSON Utility.

מפה עם שכבת KML

ייבוא KML למפה

באמצעות הכלי הזה, אפשר להמיר אובייקטים של KML לצורות גיאוגרפיות ולהציג אותם כשכבה על גבי מפה. קוראים ל-addLayerToMap() כדי להוסיף את השכבה שלך למפה. אפשר לגשת למאפיינים של אובייקט KML על ידי קריאה ל-getProperties() בכל Placemark, GroundOverlay, מסמך או תיקייה.

למידע נוסף, אפשר לעיין במסמכים ב-Google Maps Android KML Utility.

מפה עם מפת חום

הוספת מפות חום למפה

מפות חום מאפשרות לצופים להבין בקלות את ההתפלגות ואת העוצמה היחסית של נקודות נתונים במפה. במקום להציב סמן בכל מיקום, במפות חום נעשה שימוש בצבע ובצורה כדי לייצג את התפלגות הנתונים. יוצרים HeatmapTileProvider ומעבירים לו אוסף של אובייקטים של LatLng שמייצגים נקודות עניין במפה. אחר כך יוצרים TileOverlay חדש, מעבירים אותו לספק של המשבצת של מפת החום ומוסיפים את שכבת-העל של המשבצות למפה.

למידע נוסף, אפשר לעיין במסמכים בכלי של מפות Google למפת חום ב-Android.

מפה עם סמלים של בועות

התאמה אישית של סמנים באמצעות סמלי בועות

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

מפה עם סמנים מקובצים

ניהול אשכולות של סמנים

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

למידע נוסף, אפשר לעיין בתיעוד ב-Google Maps Android Markup Clustering Utility.

מפה עם כמה שכבות

הוספה של כמה שכבות לאותה מפה

אפשר להציג תכונות מ-GeoJSON, KML ואשכולות, וכן סמנים, פוליגונים ופוליגונים משלך – והכול באותה מפה. אפשר גם להפוך את השכבות האלה לאינטראקטיביות על ידי הוספת רכיב האזנה לקליקים לכל שכבה. פשוט יוצרים את המחלקות MarkerManager, GroundOverlayManager, PolygonManager ו-PolylineManager ומעבירים אותם לבנאים של GeoJsonLayer, KmlLayer, ClusterManager בזמן ההגדרה. לאחר מכן אפשר להשתמש במחלקות Manager שלמעלה ישירות כדי להוסיף למפה סמנים, קווים מרובים ופוליגונים משלך.

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

מפה עם קו פוליגוני מקודד

קידוד ופענוח של קווים מרובים

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

במפות Google, הקואורדינטות של קווי האורך והרוחב שמגדירים קו פוליגוני או פוליגון נשמרות כמחרוזת מקודדת. אפשר לקרוא הסבר מפורט על קידוד polyline. המחרוזת המקודדת הזו עשויה לקבל בתגובה מ-Google API, כמו Directions API.

אפשר להשתמש ב-PolyUtil ב-SDK של מפות Google עבור ספריית הכלים של Android כדי לקודד רצף של קואורדינטות של קווי רוחב/אורך ('LatLngs') במחרוזת מקודדת של נתיב, וכדי לפענח מחרוזת מקודדת של נתיב לרצף של רכיבי LatLngs. כך תבטיח פעולה הדדית עם שירותי האינטרנט של ממשקי ה-API של מפות Google.

מרחק מחושב בין שתי נקודות במפה

חשבו מרחקים, שטחים וכותרות באמצעות גיאומטריה כדורית

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

  • computeDistanceBetween() – מחזירה את המרחק במטרים בין שתי קואורדינטות של קו רוחב/אורך.
  • computeHeading() – מחזירה את הנושא, במעלות, בין שתי קואורדינטות של קו רוחב/אורך.
  • computeArea() – מחזירה את השטח במטרים רבועים של מסלול סגור בכדור הארץ.
  • interpolate() – מחזירה את הקואורדינטות של קווי האורך/רוחב של נקודה שנמצאת במרחק נתון של שבר נתון בין שתי נקודות נתונות. אפשר להשתמש באפשרות הזו כדי להוסיף אנימציה לסמן בין שתי נקודות, לדוגמה.

לרשימה המלאה של השיטות בכלי העזר, כדאי לעיין במסמכי התיעוד.

כיצד לבדוק אם מיקום מסוים נתמך ב-Street View

בודקים אם יש תמיכה במיקום מסוים ב-Street View.

המחלקה StreetViewUtil מאפשרת לבדוק אם מיקום מסוים נתמך ב-Street View. כדי להימנע משגיאות בעת הוספת תמונת פנורמה של Street View לאפליקציה ל-Android, אפשר לקרוא לכלי השירות הזה למטא-נתונים ולהוסיף פנורמה של Street View רק אם התגובה היא OK.

מידע נוסף מופיע במסמכי התיעוד של כלי העזר למטא-נתונים של Street View ב-GitHub.