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

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

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

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

הגדרה מהירה

כדי להתקין את ה-SDK של מפות Google לספריית הכלים של Android, פועלים לפי מדריך ההגדרה.

הכלים לתחזוקת המחשב

מפה עם שכבת GeoJSON

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

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

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

מפה עם שכבת KML

ייבוא KML למפה

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

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

מפה עם מפת חום

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

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

אפשר לקרוא פרטים נוספים בכלי של מפות Google למפת חום ב-Android.

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

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

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

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

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

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

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

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

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

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

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

מפה עם קו מרובה נקודות מקודד

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

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

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

אפשר להשתמש בקוד PolyUtil ב- Maps SDK for Android Utility Library כדי לקודד רצף של קואורדינטות גובה/אורך (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.