כדי להגדיר סגנון מבוסס-נתונים לגבולות, פועלים לפי השלבים הבאים.
הפעלת מנוע הרינדור החדש של מפות Google
מנוע רינדור משודרג של מפות זמין החל מגרסה 18.0.0 של ה-SDK של מפות ל-Android. מנוע הרינדור הזה כולל שיפורים רבים, כולל תמיכה בעיצוב מפות מבוסס-ענן ב-SDK של מפות ל-Android.
בגרסה 18.2.0 של ה-SDK של מפות ל-Android, Google החליפה את מנוע הרינדור שמוגדר כברירת מחדל ממנוע הרינדור הקודם למנוע הרינדור המשודרג של המפות. השינוי הזה אומר שהאפליקציה משתמשת עכשיו בכלי המשודרג לעיבוד מפות כברירת מחדל כשיוצרים אפליקציה חדשה או בונים מחדש אפליקציה קיימת.
יצירת מזהה מפה
כדי ליצור מזהה מפה חדש, פועלים לפי השלבים שמפורטים בקטע יצירת מזהה מפה. חשוב לוודא שסוג המפה מוגדר ל-Android.
יצירת סגנון מפה חדש
כדי ליצור סגנון מפה חדש, פועלים לפי ההוראות במאמר ניהול סגנונות מפה כדי ליצור את הסגנון, ומשייכים את הסגנון למזהה המפה שיצרתם.
בחירת שכבות התכונות בסגנון המפה החדש
ב-Google API Console אתם יכולים לבחור אילו שכבות במפה יוצגו בסגנון המפה החדש. השכבה במפה קובעת אילו סוגי גבולות יופיעו במפה (לדוגמה, יישובים, מדינות וכו').
- ב-Google API Console, נכנסים לדף סגנונות המפה.
- אם מוצגת בקשה, בוחרים פרויקט.
- בוחרים סגנון מפה.
- לוחצים על התפריט הנפתח שכבות במפה כדי להוסיף או להסיר שכבות.
- לוחצים על שמירה כדי לשמור את השינויים ולהחיל אותם על המפות.
עדכון קוד האתחול של המפה
בשלב הזה צריך להשתמש במזהה המפה שיצרתם. הוא מופיע בדף ניהול מפות.
כדי להוסיף את מזהה המפה לקוד האתחול, קראו את המאמר הוספת מזהה המפה לאפליקציה.
איך מקבלים גישה לשכבה במפה
אתם משתמשים באובייקט 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());