רוצים להוסיף תכונות מתקדמות למפות שלכם? SDK של מפות ל-Android Utility Library היא ספריית קוד פתוח של מחלקות שמועילות למגוון אפליקציות. המאגר ב-GitHub כולל את מחלקות השירות ואפליקציית הדגמה שממחישה את השימוש בכל מחלקה.
בסרטון הזה, כריס ברודפוט דן בספריית הכלים, תוך התמקדות בפענוח קווים פוליגוניים, בגיאומטריה כדורית ובסמלי בועות.
הגדרה מהירה
כדי להתקין את SDK של מפות ל-Android Utility Library, פועלים לפי המדריך להגדרה.
הכלים
ייבוא GeoJSON למפה
אתם יכולים לאחסן תכונות בפורמט GeoJSON ולהשתמש בכלי הזה כדי לעבד אותן כשכבה מעל המפה.
מפעילים את addLayer() כדי להוסיף את נתוני ה-GeoJSON למפה.
אפשר גם להוסיף תכונות ספציפיות באמצעות קריאה ל-addFeature(), והעברת אובייקט GeoJsonFeature.
בעזרת הכלי הזה, אתם יכולים להמיר אובייקטים של KML לצורות גיאוגרפיות ולעבד אותם כשכבה מעל המפה. מפעילים את addLayerToMap() כדי להוסיף את השכבה למפה. אפשר לגשת למאפיינים באובייקט KML על ידי קריאה ל-getProperties() בכל Placemark, GroundOverlay, Document או Folder.
מפות חום עוזרות לצופים להבין את ההתפלגות ואת העוצמה היחסית של נקודות על הגרף במפה. במקום להציב סמן בכל מיקום, במפות חום משתמשים בצבע ובצורה כדי לייצג את התפלגות הנתונים. יוצרים HeatmapTileProvider ומעבירים לו אוסף של אובייקטים מסוג LatLng שמייצגים נקודות עניין במפה. לאחר מכן יוצרים TileOverlay חדש, מעבירים אליו את ספק המשבצות של מפת החום ומוסיפים את שכבת-העל של המשבצות למפה.
מוסיפים IconGenerator כדי להציג קטעי מידע על הסמנים. הכלי הזה מאפשר לגרום לסמלי הסמנים להיראות קצת כמו חלונות מידע, בכך שהסמן עצמו יכול להכיל טקסט ותוכן אחר. היתרון הוא שאפשר להשאיר יותר מסמן אחד פתוח בו-זמנית, בעוד שרק חלון מידע אחד יכול להיות פתוח בכל פעם.
אפשר גם לעצב את הסמנים, לשנות את הכיוון של הסמן או של התוכן, ולשנות את תמונת הרקע או את ה-nine-patch של הסמן.
הוספת אנימציה לסמנים
אפשר להוסיף אנימציה לסמן כדי שהוא יעבור בצורה חלקה מהמיקום הנוכחי שלו למיקום חדש. היכולת הזו קיימת במחלקה AnimationUtil. דוגמה לשימוש ב-AnimationUtilDemoActivity מופיעה במאגר GitHub של ספריית הכלים.
ניהול מקבצי סמנים
ה-ClusterManager עוזר לנהל כמה סמנים ברמות זום שונות. כך אפשר להציב מספר גדול של סמנים במפה בלי לפגוע בקריאות שלה. כשמשתמש צופה במפה ברמת זום גבוהה, הסמנים הבודדים מוצגים במפה. כשהמשתמש מקטין את התצוגה לרמת זום נמוכה יותר, הסמנים מתקבצים לאשכולות כדי שיהיה קל יותר לראות את המפה.
אתם יכולים להציג תכונות מ-GeoJSON, מ-KML ומאשכולות – וגם סמנים, קווים פוליגוניים ופוליגונים משלכם – כולם באותה מפה. אפשר גם להפוך את השכבות האלה לאינטראקטיביות על ידי הוספת רכיב click listener לכל שכבה.
כדי לעשות את זה, צריך ליצור מופע של המחלקות MarkerManager, GroundOverlayManager, PolygonManager ו-PolylineManager ולהעביר אותן ל-constructors של GeoJsonLayer, KmlLayer ו-ClusterManager כשמגדירים אותם. אחר כך תוכלו להשתמש במחלקות האלה של Manager ישירות כדי להוסיף למפה סמנים, קווים פוליגוניים ופוליגונים משלכם.
פרטים נוספים זמינים במסמכי התיעוד של Google Maps Android Multi Layer Demo.
קידוד ופענוח של קווים פוליגוניים
הסוג PolyUtil ממיר קווים פוליגוניים ופוליגונים מקודדים לקואורדינטות של קווי רוחב/אורך, וממיר קואורדינטות לקווים פוליגוניים ופוליגונים מקודדים.
במפות Google, הקואורדינטות של קווי הרוחב והאורך שמגדירות קו פוליגוני או פוליגון מאוחסנות כמחרוזת מקודדת. הסבר מפורט על קידוד קו פוליגוני יכול להיות שתקבלו את המחרוזת המקודדת הזו בתגובה מ-Google API, כמו Directions API (מדור קודם).
אפשר להשתמש ב-PolyUtil ב-SDK של מפות ל-Android Utility Library כדי לקודד רצף של קואורדינטות קו רוחב/קו אורך (LatLngs) למחרוזת נתיב מקודדת, ולפענח מחרוזת נתיב מקודדת לרצף של LatLngs. כך תוכלו להבטיח יכולת פעולה הדדית עם שירותי האינטרנט של Google Maps APIs.
חישוב מרחקים, שטחים וכיוונים באמצעות גיאומטריה כדורית
בעזרת כלי העזר לגיאומטריה כדורית ב-SphericalUtil, אפשר לחשב מרחקים, שטחים וכיוונים על סמך קווי רוחב וקווי אורך. הנה כמה מהשיטות שזמינות בכלי:
computeDistanceBetween() – מחזירה את המרחק במטרים בין שתי קואורדינטות של קו רוחב/אורך.
computeHeading() – הפונקציה מחזירה את הכיוון, במעלות, בין שתי קואורדינטות של קו רוחב/קו אורך.
computeArea() – מחזירה את השטח, במטרים רבועים, של נתיב סגור בכדור הארץ.
interpolate() – מחזירה את הקואורדינטות של קו הרוחב/קו האורך של נקודה שנמצאת בחלק נתון מהמרחק בין שתי נקודות נתונות. לדוגמה, אפשר להשתמש בזה כדי ליצור אנימציה של סמן בין שתי נקודות.
הכיתה StreetViewUtil מספקת פונקציונליות לבדיקה אם מיקום נתמך ב-Street View. כדי למנוע שגיאות כשמוסיפים פנורמה ב-Street View לאפליקציה ל-Android, אפשר להפעיל את כלי המטא-נתונים הזה ולהוסיף פנורמה ב-Street View רק אם התגובה היא OK.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2026-11-04 (שעון UTC)."],[],["The Maps SDK for Android Utility Library offers tools for enhancing map functionality. Key actions include importing GeoJSON and KML data, adding heatmaps, managing marker clusters, and customizing markers with bubble icons. It supports adding multiple layers, and it also allows users to encode/decode polylines and utilize spherical geometry for distance, area, and heading calculations. Additionally, users can check if a location is supported in street view. All utilities are open-source, and can be viewed with the provided demo app.\n"]]