כדי להגדיר סגנון מבוסס-נתונים בגבולות, יש לפעול לפי השלבים הבאים.
הפעלת הכלי החדש לרינדור מפות
מנוע עיבוד מפות משודרג זמין החל מגרסה 18.0.0 של SDK של מפות ל-Android. כלי הרינדור הזה מציע שיפורים רבים, כולל תמיכה בעיצוב מפות מבוסס-ענן ל-SDK של מפות Google ל-Android.
עם השקת הגרסה 18.2.0 של ה-SDK של מפות Google ל-Android, Google החליפה את המרתח (renderer) שמוגדר כברירת מחדל מהמרתח הקודם למרתח המשופר של המפה. בעקבות השינוי הזה, מעכשיו נעשה שימוש במעבד המפות המשודרג כברירת מחדל באפליקציה שלכם כשאתם יוצרים אפליקציה חדשה או יוצרים מחדש אפליקציה קיימת.
יצירת מזהה מפה
כדי ליצור מזהה מפה חדש, פועלים לפי השלבים המפורטים במאמר יצירת מזהה מפה. חשוב לוודא שהגדרתם את סוג המפה ל-Android.
יצירת סגנון מפה חדש
כדי ליצור סגנון מפה חדש, פועלים לפי ההוראות במאמר ניהול סגנונות המפה. כדי ליצור את הסגנון ולשייך את הסגנון למזהה המפה שיצרתם כרגע.
בחירת שכבות התכונות בסגנון המפה החדש
ב-Google API Console אפשר לבחור באילו שכבות תכונות להציג סגנון המפה החדש. שכבת התכונות קובעת אילו סוגי גבולות יופיעו במפה (לדוגמה, רשויות מוניציפאליות, מדינות וכן הלאה).
- במסוף Google API, נכנסים לדף 'סגנונות מפות'.
- אם מוצגת הנחיה, בוחרים פרויקט.
- בוחרים סגנון מפה.
- לוחצים על התפריט הנפתח שכבות של תכונות כדי להוסיף או להסיר שכבות.
- לוחצים על Save כדי לשמור את השינויים ולהפוך אותם לזמינים במפות.
עדכון קוד האתחול של המפה
בשלב הזה צריך את מזהה המפה שיצרתם. ניתן למצוא את המדריך. ניהול מפות Google.
במאמר הוספת מזהה המפה לאפליקציה מוסבר איך מוסיפים את מזהה המפה לקוד האתחול.
קבלת גישה לשכבת התכונות של המפה
אתם משתמשים ב-FeatureLayer
לייצוג כל שכבת מאפיינים של מפה, כגון מיקוד או
שכבת המאפיינים של רשות מוניציפאלית. כדי לקבל גישה לאובייקט של שכבת מאפיינים, קוראים לפונקציה
GoogleMap.getFeatureLayer()
כשהמפה מופעלת:
Java
private FeatureLayer postalCodeLayer;
@Override public void onMapReady(GoogleMap map) { // Get the POSTAL_CODE feature layer. postalCodeLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()); ... }
Kotlin
private var postalCodeLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the POSTAL_CODE feature layer. postalCodeLayer = googleMap.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.POSTAL_CODE) .build()) ... }
עברו FeatureLayerOptions
לאובייקט getFeatureLayer()
כדי לציין את הסוג של שכבת התכונות. כאן
למשל, רוצים לגשת לשכבה POSTAL_CODE
. יוצרים אובייקט FeatureLayer
שונה לכל שכבה שרוצים לעצב.
אחרי שיוצרים את האובייקט FeatureLayer
, אפשר להחיל סגנון על הפוליגונים של הגבולות בתכונה הזו.
בדיקת יכולות המפה (חובה)
כדי להשתמש בסגנון מבוסס-נתונים לגבולות, נדרש מזהה מפה. אם מזהה המפה חסר או שהועברו לו נתונים לא חוקיים, לא ניתן לטעון סגנון מבוסס-נתונים לגבולות. בתור
כדי לפתור את הבעיה, אפשר להשתמש
MapCapabilities
כדי לבדוק אם יש תמיכה בעיצוב מבוסס-נתונים לגבולות.
Kotlin
val capabilities: MapCapabilities = googleMap.getMapCapabilities() System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable())
Java
MapCapabilities capabilities = googleMap.getMapCapabilities(); System.out.println("Data-driven Styling is available: " + capabilities.isDataDrivenStylingAvailable());