SDK של מפות Google לספריית התשתיות של Android

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

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

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

הגדרה מהירה

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

תשתיות

מפה עם שכבת GeoJSON

ייבוא של JSONJSON למפה

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

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

מפה עם שכבת KML

ייבוא KML למפה

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

לקבלת פרטים, ניתן לעיין בתיעוד בכלי מפות Google ל-Android .

מפה עם מפת חום

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מפה עם רב-קו מקודד

קידוד ופענוח פוליגונים

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

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

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

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

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

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

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

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